VSCodeでnpmが使えない場合は、VSCodeそのものではなく、Node.jsやnpmのインストール状況、PATH、ターミナルの設定、PowerShellの実行ポリシー、プロジェクトの設定などが原因になっていることが多いです。
特にWindowsでは、Node.jsをインストールしたあとにVSCodeを再起動していなかったり、PowerShellによってnpm.ps1の実行がブロックされていたりするケースがよくあります。
原因によって対処方法が大きく異なるため、まず「npmコマンド自体が使えないのか」「npmは使えるものの、npm installやnpm runでエラーになるのか」を切り分けることが重要です。
VSCodeでnpmが使えないときは最初に状態を確認する
VSCodeのターミナルを開き、最初にNode.jsとnpmが認識されているか確認します。
node -v
続いて、npmのバージョンを確認します。
npm -v
正常であれば、それぞれのバージョン番号が表示されます。
たとえば、次のような表示です。
v24.x.x
11.x.x
バージョン番号は環境によって異なるため、数字そのものは問題ではありません。
重要なのは、コマンドを実行したときにバージョン番号が正常に表示されるかどうかです。
nodeとnpmの両方が使えない場合
node -vとnpm -vの両方がエラーになる場合は、主に次の原因が考えられます。
- Node.jsがインストールされていない
- PATHが正しく設定されていない
- VSCodeが最新の環境変数を読み込んでいない
- 複数のNode.js環境が競合している
この場合は、Node.jsのインストール状況やPATHを優先して確認します。
nodeは使えるがnpmだけ使えない場合
node -vは成功するものの、npm -vだけ失敗する場合は、npmのパスやPowerShellの設定などを確認します。
特にWindowsでPowerShellを利用している場合は、実行ポリシーが原因になっている可能性があります。
npm -vは成功するがnpm installなどが失敗する場合
npm -vが成功するのであれば、npmそのものは基本的に利用できています。
この場合は、次のようなプロジェクト側の問題を疑います。
package.jsonの問題- Node.jsのバージョン不一致
- 依存パッケージの問題
- ネットワークエラー
- npmレジストリの設定
- 権限の問題
エラーメッセージを確認して、原因を絞り込みましょう。
Node.jsがインストールされていない
npmを利用するには、基本的にNode.jsの環境が必要です。
一般的なNode.jsのインストール方法では、npmも一緒に導入されます。
そのため、VSCodeで次のようなエラーが表示される場合は、Node.jsがインストールされているか確認しましょう。
'node' is not recognized as an internal or external command
PowerShellでは、次のようなエラーになる場合があります。
node : 用語 'node' は認識されません
npmについては、
npm : 用語 'npm' は認識されません
などと表示される場合があります。
WindowsでNode.jsの場所を確認する
Windowsでは、次のコマンドを使用できます。
where.exe node
npmについては、次のコマンドです。
where.exe npm
PowerShellを利用している場合は、次の方法でも確認できます。
Get-Command node
Get-Command npm
何も見つからない場合は、Node.jsがインストールされていないか、PATHが正しく設定されていない可能性があります。
macOSやLinuxで確認する
macOSやLinuxでは、次のコマンドを利用できます。
which node
which npm
複数のNode.jsやnpmが存在していないか詳しく確認したい場合は、次のコマンドも便利です。
type -a node
type -a npm
PATHが通っていない
Node.jsがインストールされていても、実行ファイルの場所がPATHに登録されていないと、VSCodeのターミナルからnodeやnpmを実行できません。
Windowsの一般的なNode.js環境では、次のような場所が利用されることがあります。
C:\Program Files\nodejs\
ただし、Node.jsのバージョン管理ツールを利用している場合などは、別の場所になることがあります。
WindowsでPATHを確認する
PowerShellでは、現在のPATHを次のコマンドで確認できます。
$env:Path
また、次のコマンドを使えば、実際にどのnpmが呼び出されているか確認できます。
Get-Command npm
複数のnpmが検出される場合は、古いNode.js環境や別のバージョン管理ツールが混在している可能性があります。
PATHを変更したらVSCodeを再起動する
Node.jsを新しくインストールしたり、PATHを変更したりした場合は、VSCodeを再起動することが重要です。
VSCodeを起動したままNode.jsをインストールすると、起動済みのVSCodeに新しい環境変数が反映されない場合があります。
そのため、次の順番で確認しましょう。
- VSCodeのターミナルを閉じる
- VSCode自体を完全に終了する
- VSCodeを再起動する
- 新しいターミナルを開く
node -vとnpm -vを実行する
それでも直らない場合は、PCを再起動して確認する方法もあります。
PowerShellでnpm.ps1が実行できない
WindowsのVSCodeでは、統合ターミナルとしてPowerShellが使用されることがあります。
このとき、次のようなエラーが表示される場合があります。
npm.ps1 cannot be loaded because running scripts is disabled on this system.
日本語環境では、
このシステムではスクリプトの実行が無効になっているため、
ファイル npm.ps1 を読み込むことができません。
などと表示されます。
この場合は、npmそのものが壊れているとは限りません。
PowerShellの実行ポリシーによって、npm.ps1の実行が制限されている可能性があります。
PowerShellの実行ポリシーを確認する
まず、次のコマンドを実行します。
Get-ExecutionPolicy
より詳しく確認する場合は、次のコマンドを利用します。
Get-ExecutionPolicy -List
CurrentUserやLocalMachineなど、スコープごとの設定を確認できます。
CurrentUserをRemoteSignedに変更する方法
自分で管理しているPCで、内容を理解したうえで変更する場合は、次のような設定方法があります。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
設定後、VSCodeのターミナルを開き直して、次のコマンドを確認します。
npm -v
ただし、実行ポリシーの変更はnpmを使うための唯一の解決方法ではありません。
設定を変更したくない場合は、VSCodeのターミナルをCommand Promptなど別のシェルに変更する方法もあります。
会社や学校のPCでは勝手に変更しない
会社や学校のPCでは、PowerShellの実行ポリシーが管理者によって設定されていることがあります。
その場合は、勝手に変更せず、システム管理者や担当者に確認しましょう。
また、npmを動かすためだけにBypassやUnrestrictedへ安易に変更するのもおすすめできません。
必要以上に制限を緩めないことが重要です。
PowerShellだけnpmが使えない
Command Promptではnpmが使えるものの、VSCodeのPowerShellでは使えないケースがあります。
この場合は、Node.jsやnpmのインストール自体ではなく、PowerShell側の設定が原因である可能性が高いです。
VSCodeのターミナルをCommand Promptに変更する
VSCodeでターミナルを開き、ターミナルプロファイルからCommand Promptを選択します。
そのうえで、次のコマンドを実行します。
npm -v
Command Promptでは正常に動作するのであれば、PowerShellの実行ポリシーやプロファイル設定を確認しましょう。
Git Bashなど別のシェルで確認する方法もあります。
複数のNode.jsやnpmが競合している
Node.jsを複数回インストールしていたり、Node.jsのバージョン管理ツールを複数使っていたりすると、PATHの優先順位によって意図しないNode.jsやnpmが実行されることがあります。
この状態では、
node -v
と、
npm -v
自体は動作していても、想定と異なる環境が利用されていることがあります。
Windowsで複数インストールを確認する
次のコマンドを実行します。
where.exe node
where.exe npm
複数のパスが表示される場合は、Node.js環境が複数存在している可能性があります。
古いNode.jsのPATHが残っていないか確認しましょう。
macOSやLinuxで確認する
次のコマンドが便利です。
type -a node
type -a npm
Node.jsのバージョン管理ツールを使用している場合は、そのツールで現在選択されているバージョンも確認しましょう。
npm installだけ失敗する
npm -vは正常なのに、
npm install
だけ失敗する場合は、npm自体ではなく、プロジェクトや依存関係に原因がある可能性が高いです。
package.jsonがあるディレクトリか確認する
既存のNode.jsプロジェクトの依存パッケージをインストールする場合は、通常package.jsonがあるプロジェクトディレクトリでnpm installを実行します。
たとえば、次のような構成です。
my-project/
├─ src/
├─ package.json
└─ package-lock.json
この場合は、
cd my-project
npm install
と実行します。
現在のディレクトリを確認するには、macOSやLinuxでは次のコマンドを使います。
pwd
PowerShellでは、次のコマンドです。
Get-Location
ファイル一覧も確認しましょう。
ls
Command Promptなら、次のコマンドです。
dir
node_modulesの状態に問題がある
依存関係の状態がおかしくなっている場合、npm installやnpm runでエラーになることがあります。
まずは通常どおり、次のコマンドを実行します。
npm install
それでも問題が解決しない場合は、node_modulesを削除して再インストールする方法があります。
macOSやLinuxの場合
rm -rf node_modules
npm install
Windows PowerShellの場合
Remove-Item node_modules -Recurse -Force
npm install
ただし、npm関連のエラーが発生するたびにnode_modulesを削除する必要はありません。
まずエラーメッセージを確認し、依存関係の破損が疑われる場合に実施しましょう。
package-lock.jsonを安易に削除しない
npmのトラブル対策として、package-lock.jsonを削除して再インストールする方法が紹介されることがあります。
しかし、package-lock.jsonには依存パッケージの解決結果が記録されており、同じ依存関係を再現するうえで重要なファイルです。
そのため、
node_modulesを削除
↓
package-lock.jsonも削除
↓
npm install
という手順を、すべてのnpmエラーに対して実行するのはおすすめできません。
まずはnode_modulesの再構築など、影響の小さい対処から試しましょう。
package-lock.jsonを削除する場合は、依存関係を解決し直す必要がある理由を理解したうえで実行することが大切です。
npmキャッシュに問題がある
npmキャッシュが原因ではないかと考えた場合でも、最初からキャッシュをすべて削除する必要はありません。
まずは次のコマンドでキャッシュを確認します。
npm cache verify
一方、次のコマンドはキャッシュを強制的に削除します。
npm cache clean --force
npm cache clean --forceは、npmエラーが発生したら毎回実行するコマンドではありません。
まずはnpm cache verifyを利用し、キャッシュ削除が本当に必要か判断する方がよいでしょう。
EACCESやPermission deniedが表示される
macOSやLinuxでは、グローバルパッケージをインストールするときに権限エラーが発生する場合があります。
たとえば、
npm install -g パッケージ名
を実行した際に、
EACCES
permission denied
などと表示されるケースです。
安易にsudoを使わない
エラーが出たからといって、毎回次のように実行するのはおすすめできません。
sudo npm install -g パッケージ名
Node.jsのバージョン管理ツールを利用するなど、一般ユーザーの権限でnpmを利用できる環境を整える方が適切です。
CLIツールを一時的に実行したいだけであれば、ツールによってはnpxを利用できる場合もあります。
npm run devが動かない
npm -vやnpm installは成功するのに、
npm run dev
だけが失敗する場合は、npm自体の問題ではない可能性が高いです。
npm run devは、package.jsonのscriptsにdevが定義されている場合に利用できます。
たとえば、次のようになっていれば実行できます。
{
"scripts": {
"dev": "vite",
"build": "vite build"
}
}
この場合は、
npm run dev
を実行できます。
Missing script: devが表示される場合
次のようなエラーが表示される場合があります。
Missing script: "dev"
これは、package.jsonにdevスクリプトが定義されていないことを意味します。
利用可能なスクリプトを確認するには、次のコマンドが便利です。
npm run
たとえば、
Scripts available:
start
build
test
と表示された場合は、devというスクリプトは存在していません。
package.jsonの内容に応じたコマンドを使用しましょう。
npm startを利用する場合
package.jsonに、
{
"scripts": {
"start": "node index.js"
}
}
と定義されている場合は、次のコマンドを利用できます。
npm start
プロジェクトによって使用するコマンドは異なるため、READMEやpackage.jsonを確認することが重要です。
Node.jsのバージョンがプロジェクトと合っていない
npm自体が正常に動作していても、Node.jsのバージョンがプロジェクトの想定と合っていないとエラーになる場合があります。
まず、現在のバージョンを確認します。
node -v
続いて、
npm -v
も確認しましょう。
package.jsonのenginesを確認する
プロジェクトによっては、package.jsonに次のような指定があります。
{
"engines": {
"node": ">=20"
}
}
この場合、古いNode.jsを使用していると正常に動作しない可能性があります。
.nvmrcなども確認する
プロジェクトによっては、
.nvmrc
や、
.node-version
などのファイルでNode.jsのバージョンが指定されています。
既存プロジェクトを開いた場合は、npmの最新版を入れることだけを考えるのではなく、そのプロジェクトが想定しているNode.jsのバージョンを確認しましょう。
ネットワークやプロキシが原因になっている
npmコマンドは正常に使えるものの、npm installでパッケージを取得できない場合は、ネットワーク環境が原因になっている可能性があります。
たとえば、次のようなエラーです。
ETIMEDOUT
ECONNRESET
ENOTFOUND
この場合は、インターネット接続、VPN、プロキシ、ファイアウォール、社内ネットワークなどを確認します。
npmの設定を確認する
npmの設定は、次のコマンドで確認できます。
npm config list
レジストリの設定だけ確認する場合は、次のコマンドです。
npm config get registry
一般的なnpmのレジストリは、次のURLです。
https://registry.npmjs.org/
ただし、会社では社内用レジストリやプロキシが設定されている場合があります。
社用PCでは、設定を勝手に変更する前に、開発環境のルールを確認しましょう。
VSCodeを管理者として実行すれば直るとは限らない
権限エラーが発生すると、VSCodeを「管理者として実行」することで解決しようとするケースがあります。
しかし、通常のNode.js開発では、毎回VSCodeを管理者権限で起動する必要はありません。
管理者権限でしかnpmが動かないのであれば、Node.jsやnpmのインストール先、権限、グローバルパッケージの設定などに問題がないか確認した方がよいでしょう。
管理者権限は根本的な解決策として常用しないことをおすすめします。
npmのエラーメッセージ別に原因を判断する
VSCodeでnpmが使えない場合は、エラー内容を見ることで原因をある程度絞り込めます。
| エラー・症状 | 主な原因 | 確認するポイント |
|---|---|---|
npm is not recognized | Node.js未導入・PATH | node -v、where.exe npm |
npm: command not found | Node.js未導入・PATH | which npm |
npm.ps1 cannot be loaded | PowerShell実行ポリシー | Get-ExecutionPolicy -List |
EACCES | 権限 | Node.jsの導入方法やグローバル設定 |
Permission denied | 権限 | npmのインストール先 |
Missing script: "dev" | scripts未定義 | npm run、package.json |
ENOENT | ファイル・ディレクトリ | package.jsonやパス |
ETIMEDOUT | ネットワーク | Proxy、VPN、通信環境 |
ECONNRESET | ネットワーク | 回線、Proxy、セキュリティ設定 |
| VSCodeだけnpmが使えない | 環境変数・シェル | VSCode再起動、ターミナル変更 |
VSCodeでnpmが使えないときの確認手順
原因が分からない場合は、順番に確認すると問題を切り分けやすくなります。
1. Node.jsが使えるか確認する
node -v
ここでエラーになる場合は、Node.jsのインストール状況やPATHを確認します。
2. npmが使えるか確認する
npm -v
nodeは動くのにnpmだけエラーになる場合は、npmの場所やPowerShellの設定を確認します。
3. nodeとnpmの場所を確認する
Windowsでは、
where.exe node
where.exe npm
または、
Get-Command node
Get-Command npm
を利用します。
macOSやLinuxでは、
which node
which npm
を確認します。
4. VSCodeを完全に再起動する
Node.jsのインストールやPATH変更後であれば、VSCodeを完全終了して再起動します。
5. WindowsではPowerShellの実行ポリシーを確認する
Get-ExecutionPolicy -List
npm.ps1関連のエラーが出ている場合は特に重要です。
6. 別のターミナルでも確認する
PowerShellで動かない場合は、Command Promptなどに変更して確認します。
npm -v
別のシェルでは正常に動くのであれば、ターミナル固有の設定が原因と判断しやすくなります。
7. package.jsonを確認する
npm installやnpm run devだけが失敗する場合は、プロジェクトルートにいるか確認します。
あわせてpackage.jsonの内容も確認しましょう。
8. 利用可能なnpmスクリプトを確認する
npm run
を実行すると、package.jsonに定義されているスクリプトを確認できます。
npm run devが使えない場合は、まずこの方法でdevが存在するか確認すると効率的です。
9. Node.jsのバージョンを確認する
node -v
プロジェクトのpackage.jsonや.nvmrcなどと比較して、対応バージョンか確認します。
10. 必要に応じて依存関係やキャッシュを確認する
依存関係に問題がある場合は、node_modulesの再構築を検討します。
キャッシュが疑わしい場合は、まず次のコマンドを実行します。
npm cache verify
まとめ
VSCodeでnpmが使えない場合は、最初に次のコマンドを確認することが重要です。
node -v
npm -v
node -vも失敗するのであれば、Node.jsのインストールやPATHに問題がある可能性が高いです。
node -vは成功するもののnpm -vが失敗するのであれば、npmのPATHやPowerShellの実行ポリシーを確認しましょう。
Command Promptではnpmが使えるのにPowerShellでは使えない場合は、PowerShell側の設定が原因である可能性があります。
一方、npm -vは成功するのにnpm installやnpm run devだけが失敗する場合は、package.json、依存関係、Node.jsのバージョン、ネットワーク、権限などを確認します。
また、npm run devが動かない場合は、次のコマンドで利用可能なスクリプトを確認すると便利です。
npm run
VSCodeでnpmが使えない問題は、「npmコマンドそのものが使えない問題」と「npmは使えるがプロジェクト側でエラーになる問題」を分けて考えると、原因を特定しやすくなります。
まずエラーメッセージを確認し、Node.js、npm、PATH、ターミナル、プロジェクトの順番で一つずつ切り分けていくのが効率的です。
以上、VSCodeでnpmが使えない原因と対処法についてでした。
最後までお読みいただき、ありがとうございました。










