【PR】を含みます。

プログラミング

【Windows】npmが「認識されていません」と出るときの原因と対処法|npm.ps1を読み込めない場合も解説

npmが認識されない原因と対処法。エラーの出たパソコンの画面と、開き直し・インストール・PATHへの追加・実行ポリシーの変更の4つの対処を表したイラスト

Node.jsをインストールしたのに、npm -vを実行すると次のエラーが表示されることがあります。

'npm' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

コマンドプロンプトでnpm -vを実行し、「'npm' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」と表示された画面

※ 画面の「set PATH=」で始まる行は、エラーを再現するために実行したコマンドです。実行する必要はありません。

PowerShellやVS Codeのターミナルでは、同じ原因でも違うメッセージが表示されます。この記事では、4つの原因の見分け方と、原因ごとの直し方を解説します。

作業環境
  • Windows 10 Pro 22H2
  • Windows PowerShell 5.1
  • Visual Studio Code 1.127.0
  • Node.js v22.14.0
  • npm 10.9.2
  • 確認日: 2026年10月10日

npmが認識されない4つの原因と見分け方

Q. npmが「認識されていません」と出るのはなぜ?

A. Windowsがnpmのファイルを見つけられないためです。PowerShellでは、ファイルが見つかっても実行ポリシーという設定で止められ、「npm.ps1 を読み込むことができません」と表示されることもあります。

Windowsは、入力されたコマンドのファイルをPATH(環境変数Path)に登録されたフォルダから探します。PATHは、コマンドを探しに行くフォルダの一覧です。Node.jsのインストーラーは、npmが入っているC:\Program Files\nodejs\をこの一覧に追加します。

npmが認識されない原因は次の4つです。

  1. Node.jsのインストール前から開いていたウィンドウを使っている
  2. Node.jsがインストールされていない
  3. PATHにC:\Program Files\nodejs\が入っていない
  4. (PowerShellだけ)実行ポリシーでnpm.ps1の実行が止められている

①〜③は同じメッセージになるので、番号の順に確認します。

表示されるメッセージ表示される画面原因
'npm' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして
認識されていません。
コマンドプロンプト①→②→③の順に確認
'npm' is not recognized as an internal or external command,
operable program or batch file.
コマンドプロンプト
(英語表示のWindows)
①→②→③の順に確認
npm : 用語 'npm' は、コマンドレット、関数、
スクリプト ファイル、または操作可能なプログラムの
名前として認識されません。
PowerShell
(VS Codeのターミナルを含む)
①→②→③の順に確認
npm : このシステムではスクリプトの実行が
無効になっているため、ファイル
C:\Program Files\nodejs\npm.ps1 を
読み込むことができません。
PowerShell
(VS Codeのターミナルを含む)
④

PowerShellでnpmが見つからない場合のメッセージは、全体では次のとおりです。

npm : 用語 'npm' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。

Windows PowerShellでnpm -vを実行し、赤い文字で「npm : 用語 'npm' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。」と表示された画面

※ 画面の「$env:Path =」で始まる行は、エラーを再現するために実行したコマンドです。実行する必要はありません。

①Node.jsのインストール前から開いていたウィンドウを開き直す

Q. npmが「認識されていません」と出た場合、まず何をすればいい?

A. Node.jsをインストールした直後は、開いているコマンドプロンプトやPowerShellを閉じて、開き直してください。VS Codeのターミナルの場合は、VS Codeごと終了して起動し直します。

コマンドプロンプトやPowerShellのウィンドウは、閉じるまで、開いた時点のPATHを使い続けます。Node.jsのインストール前から開いていたウィンドウでは、PATHにC:\Program Files\nodejs\が入っていません。そのため、Windowsがnpmを見つけられません。

開いているウィンドウを閉じ、スタートメニューなどから新しく開いてnpm -vを実行してください。npmのバージョン番号が表示されれば直っています。Windowsを再起動する必要はありません。

新しく開いたコマンドプロンプトでnpm -vを実行し、npmのバージョン番号が表示された画面

VS Codeのターミナルで「認識されていません」と出る場合はVS Code本体を起動し直す

VS Codeのターミナルは、VS Codeを起動した時点の環境変数を受け継ぎます。そのため、ターミナルだけを開き直しても、Node.jsのインストールで変わったPATHは反映されません。

VS Codeのウィンドウをすべて閉じて終了し、起動し直してください。そのあと新しいターミナルでnpm -vを実行します。

開き直しても直らない場合はnode -vとwhere.exe npmで原因を見分ける

エラーが出る場合は、そのウィンドウで次の2つのコマンドを実行します。

コマンドプロンプト・PowerShell
Copy
node -v
where.exe npm

node -vは、Node.jsのバージョンを表示するコマンドです。where.exe npmは、PATHのフォルダからnpmのファイルを探して、見つかった場所を表示します。

PowerShellで.exeを付けずにwhereと打つと、別のコマンドとして動いて何も表示されません。PowerShellでも.exeまで打ってください。

結果の組み合わせで、原因が次のように分かれます。

node -vの結果where.exe npmの結果原因
「認識されていません」
(PowerShellでは「認識されません」)
情報: 与えられたパターンのファイルが
見つかりませんでした。
②か③
(npm.cmdがあるかで見分ける)
バージョン番号が表示されるC:\Program Files\nodejs\npm
などの場所が表示される
このウィンドウでnpm -vも通る場合は①
(元のウィンドウが古かった)
PowerShellのnpm -vで
npm.ps1のメッセージが出る場合は④

npm.cmdがあるかでNode.jsの未インストールとPATHの問題を見分ける

node -vが「認識されていません」になり、where.exe npmでもnpmが見つからない場合があります。その場合は、Node.jsのインストール先のフォルダにnpm.cmdがあるかを確かめます。コマンドプロンプトで次のコマンドを実行してください。

コマンドプロンプト
Copy
dir "C:\Program Files\nodejs\npm.cmd"

「C:\Program Files\nodejs のディレクトリ」の下にnpm.cmdが表示されれば、ファイルはあります。

下の画面は、エラーを再現するためにPATHを書き換えたウィンドウで実行したものです。

コマンドプロンプトでnpm -vとnode -vが「認識されていません」になり、where.exe npmは「情報: 与えられたパターンのファイルが見つかりませんでした。」と表示されたが、dirではC:\Program Files\nodejsにnpm.cmdが表示された画面

インストール先を変えていない場合、npm.cmdが無ければ原因は②(Node.jsが未インストール)、あれば③(PATHの問題)です。

インストール先を変えた場合やnvm-windowsで入れた場合は、Node.jsをインストールしたフォルダにnpm.cmdがあるかを確かめてください。

②Node.jsがインストールされていない場合はインストールする

npmはNode.jsと一緒にインストールされるので、npmだけを別にインストールする必要はありません。

インストーラーの途中に出る「Custom Setup」の画面では、「Add to PATH」を既定のままにしてください。ツリーのアイコンでインストールしない設定にすると、PATHにフォルダが追加されず、インストールしても原因③と同じ状態になります。

インストールが終わったら、新しく開いたコマンドプロンプトでnpm -vを実行して確かめます。

Node.jsのダウンロードからインストールまでの手順は、以下の記事で画像付きで解説しています。

あわせて読む
Windows Node.jsのインストール手順

【Windows】Node.jsのダウンロードとインストール方法|画像付き

WindowsパソコンにNode.jsをインストールしたい方のために、公式サイトからのダウンロード方法からインストール手順、そしてインストール後の動作確認方法まで、初心者にも分かりやすく丁寧に解説しま ...

③環境変数PathにC:\Program Files\nodejs\を追加する

Node.jsのインストーラーがC:\Program Files\nodejs\を追加するのは、「システム環境変数」のPathです。ここに同じフォルダを追加します。

上の「ユーザー環境変数」のPathにある…\AppData\Roaming\npmは、npm本体の場所ではありません。npmで入れたコマンドが置かれるフォルダです。TypeScriptのtscが認識されないときに追加する%AppData%\npmは、このフォルダのことです。

システム環境変数を変更するには、管理者の権限が必要です。管理者の権限が無いアカウントの場合は、上の「ユーザー環境変数」のPathに同じフォルダを追加すれば、そのアカウントではnpmを使えます。

  1. 「Win + R」を押し、「名前(O)」にsysdm.cplと入力して「OK」をクリック

    「ファイル名を指定して実行」の「名前」にsysdm.cplと入力した画面
  2. 「詳細設定」タブをクリック

    「システムのプロパティ」の画面。上部に「詳細設定」タブがある
  3. 「環境変数(N)...」をクリック

    「システムのプロパティ」の「詳細設定」タブ。右下に「環境変数(N)...」ボタンがある
  4. 下の「システム環境変数(S)」で「Path」を選び、「編集(I)...」をクリック

    「環境変数」の画面。上に「ユーザー環境変数」、下に「システム環境変数」の一覧があり、システム環境変数にPathがある
  5. 一覧にC:\Program Files\nodejs\があるか確かめる

    Pathに登録されたフォルダが、1行に1つずつ並んでいます。すでにある場合は、追加する必要はありません。綴りが違っていれば、その行を選んで「編集(E)」で直します。C:\Program Files odejs\以外の行は、消したり書き換えたりしないでください。ほかのアプリが使うフォルダも並んでいるためです。間違えて変えてしまった場合は、「キャンセル」で閉じれば変更は保存されません。綴りが合っている場合は、コマンドプロンプトやPowerShellをスタートメニューなどから開き直したかを確かめてください(①)。

    「環境変数名の編集」の画面。Pathに登録されたフォルダが1行に1つずつ並び、右側に「新規(N)」などのボタンがある
  6. 無い場合は「新規(N)」をクリックし、C:\Program Files\nodejs\を入力する

    追加するフォルダ
    Copy
    C:\Program Files\nodejs\
    「環境変数名の編集」で「新規」をクリックし、一覧の一番下の行にC:\Program Files\nodejs\を入力している画面
  7. 「OK」をクリックし、「環境変数」と「システムのプロパティ」の画面も「OK」で閉じる

  8. 新しく開いたコマンドプロンプトでnpm -vを実行する

    npmのバージョン番号が表示されれば完了です。VS Codeのターミナルで使う場合は、VS Codeも終了して起動し直してください。

④「npm.ps1 を読み込むことができません」と出る場合は実行ポリシーを変える

PowerShellでnpm -vを実行すると、次のメッセージが表示される場合があります。

npm : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Program Files\nodejs\npm.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。

Windows PowerShellでnpm -vを実行し、赤い文字で「npm : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Program Files\nodejs\npm.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。」と表示された画面

Q. PowerShellで「npm.ps1 を読み込むことができません」と出る場合はどうする?

A. 実行ポリシーを今のユーザーだけRemoteSignedに変えると直ります。実行ポリシーを変えられない場合は、npmの代わりにnpm.cmdと打ちます。

VS Codeのターミナルも、既定ではPowerShellで動くので、同じメッセージが表示されます。

VS Codeのターミナル(powershell)でnpm -vを実行し、npm.ps1を読み込むことができませんというエラーが表示された画面

Node.jsのフォルダには、npmを起動するファイルとしてnpm.cmdとnpm.ps1が入っています。PowerShellはnpmと打たれると、PowerShell用のnpm.ps1を先に使います。コマンドプロンプトはnpm.cmdを使うので、このエラーは出ません。

npm.ps1はPowerShellのスクリプトなので、実行ポリシーの対象になります。実行ポリシーは、PowerShellがどんな条件でスクリプトを実行するかを決める、安全のための設定です。Windowsに最初から入っているWindows PowerShellは、スクリプトを実行しない設定(Restricted)が既定です。Windows Serverだけは既定が違います。

エラーのメッセージにある「about_Execution_Policies」は、Microsoftのドキュメントです。Windows PowerShell 5.1向けの版は次のページです。実行ポリシーの種類と設定の範囲が説明されています。

about_Execution_Policies(Microsoft Learn)

Set-ExecutionPolicyで実行ポリシーをRemoteSignedに変える

RemoteSignedにすると、PCの中で作られたスクリプトは署名が無くても実行でき、インターネットからダウンロードしたスクリプトには署名が求められます。npxや、npm install -gで入れたtscなども.ps1のファイルから起動するので、同じエラーで止まります。実行ポリシーを変えておけば、それらもまとめて動くようになります。

-Scope CurrentUserは、今のユーザーにだけ設定するという指定です。管理者として開いていないPowerShellでも実行できます。省くとPC全体の設定を変えようとするので、管理者として開いたPowerShellでないと失敗します。

PowerShellで次のコマンドを実行します。

PowerShell
Copy
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

「実行ポリシーの変更」という確認が表示されたら、Yを入力してからEnterを押します。既定値は「N」なので、何も入力せずにEnterを押すと設定は変わりません。

Set-ExecutionPolicy RemoteSigned -Scope CurrentUserを実行し、「実行ポリシーの変更」の確認と「(既定値は "N"):」が表示された画面

変わったかどうかは、次のコマンドで確かめられます。

PowerShell
Copy
Get-ExecutionPolicy -List

CurrentUserの行がRemoteSignedになっていれば変更できています。設定はすぐに反映されます。同じウィンドウでnpm -vを実行し、バージョン番号が表示されれば完了です。

確認にYと入力したあと、Get-ExecutionPolicy -ListでCurrentUserがRemoteSignedになり、npm -vでバージョン番号が表示された画面

実行ポリシーをBypassやUnrestrictedに変える方法も見かけます。ただ、どちらもインターネットからダウンロードした署名の無いスクリプトまで実行できてしまう設定です。npmを動かす目的では、RemoteSignedで足ります。

実行ポリシーを元に戻したい場合は、次のコマンドを実行し、確認にYと入力してからEnterを押します。CurrentUserの行がUndefinedに戻ります。元に戻したあとにPowerShellでnpmを使う場合は、npm.cmdと打ちます。

PowerShell
Copy
Set-ExecutionPolicy Undefined -Scope CurrentUser

実行ポリシーを変えられない場合はnpm.cmdと打つ

会社のPCなどでは、組織の設定(グループポリシー)で実行ポリシーが決められていて、自分では変えられないことがあります。この状態かどうかは、Get-ExecutionPolicy -Listの結果で確かめられます。MachinePolicyかUserPolicyの行がUndefined以外の場合は、変えられない状態です。

Windows PowerShellでGet-ExecutionPolicy -Listを実行し、MachinePolicy・UserPolicy・Process・CurrentUser・LocalMachineの実行ポリシーが一覧で表示された画面

その場合は、npmの代わりにnpm.cmdと打ちます。拡張子まで打つとnpm.ps1を通らずにnpm.cmdが使われ、実行ポリシーに止められません。

PowerShell
Copy
npm.cmd -v

npm installなども、npm.cmd installのように打てば動きます。

PowerShellでnpm.cmd -vを実行し、npmのバージョン番号が表示された画面

ただし、npm install -gで入れたtscなども、tsc.cmdのように毎回.cmdを付けることになります。付けるのが面倒な場合は、コマンドプロンプトを使えば.cmdを付けなくても動きます。

npm -vは通るのにtscなどが認識されない場合は%AppData%\npmをPathに追加する

npm install -gで入れたコマンドは、npm本体とは別の%AppData%\npmというフォルダに置かれます。このフォルダがユーザー環境変数のPathに無いと、npm -vは通るのにtscなどは「認識されていません」になります。

PowerShellの場合は、tscなども.ps1のファイルが先に使われるので、④と同じ実行ポリシーのエラーになることもあります。

tscが認識されないときに%AppData%\npmをPathに追加する手順は、以下の記事で解説しています。

あわせて読む
Windows TypeScriptのtscコマンドが実行できない原因と解決策を徹底解説

【Windows】TypeScriptのtscコマンドが実行できない原因と解決策を徹底解説

tscコマンドを実行すると以下のようなエラーが表示されることがあります。 'tsc' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。 このエラー ...

まとめ

  • Node.jsをインストールした直後は、コマンドプロンプトやPowerShellを開き直す。VS Codeは本体を終了して起動し直す
  • 開き直しても直らない場合は、node -vとwhere.exe npmを実行する。nodeもnpmも見つからない場合は、インストール先(既定はC:\Program Files\nodejs\)にnpm.cmdがあるかを確かめる
  • npm.cmdが無い場合はNode.jsをインストールし、ある場合はシステム環境変数のPathにそのフォルダを追加する
  • PowerShellで「npm.ps1 を読み込むことができません」と出る場合は、実行ポリシーを変える。Set-ExecutionPolicy RemoteSigned -Scope CurrentUserを実行し、確認にYと入力する
  • 実行ポリシーを変えられない場合は、npm.cmdと打つかコマンドプロンプトを使う
この記事を書いた人
もみじのアイコン画像

もみじ

現役フリーランスWebエンジニア。フロントエンド開発を中心に、Web制作、WordPress、業務効率化ツール開発、PHPを用いた機能改修に携わってきました。社内SEとして業務ツール開発や運用保守を担当した経験もあります。

実務や学習を通じて得た知見をもとに、初心者がつまずきやすいポイントや、現場で役立つ考え方をわかりやすく発信しています。

詳しいプロフィールはこちら

-プログラミング
-,