npm runでエラーが出るときの解決方法|Nodeのバージョンを上げる手順
Nuxt のスターターテンプレートを動かそうとして npm run dev を実行したところ、警告とエラーが出て起動しませんでした。
結論から書くと、原因は Node.js のバージョンが古かったことです。n か nvm で Node を LTS に上げれば解決します。
私の場合、3.x系の gulp を使うために Node のバージョンを意図的に下げていたのが原因でした。同じように、古いプロジェクトのために Node を下げたまま新しいツールを動かそうとすると、この状態になります。
この記事では、当時出た2種類のメッセージと、それぞれの現在の対処法をまとめます。当時使った npm config set scripts-prepend-node-path true は、npm 7 以降では存在しない設定です。今この記事にたどり着いた人が同じコマンドを打たなくて済むように、その点も含めて書き直しました。
npm runでエラーが出るときに最初に確認すること
結論:まず node -v と npm -v を実行して、バージョンを確認してください。Node が EOL(サポート終了)のバージョンだと、多くのツールがそもそも動きません。
node -v
npm -v
2026年9月時点の Node.js のサポート状況は次のとおりです。
▼Node.js のバージョンとサポート状況
| バージョン | コードネーム | 状態 |
|---|---|---|
| v26 | — | Current(最新。本番向けではない) |
| v24 | Krypton | Active LTS(推奨) |
| v22 | Jod | Maintenance LTS |
| v20 以下 | Iron ほか | EOL(サポート終了) |
本番で使うプロジェクトは Active LTS か Maintenance LTS を選びます。node -v が v20 以下を返したら、それが不具合の原因である可能性がかなり高いです。
npm runコマンドで警告が出る
npm run を実行したときに出た警告がこちらです。
「--scripts-prepend-node-path というオプションを使って設定を true にしてほしい」という内容の警告です。これは npm が、実行に使った Node の場所を PATH の先頭に足すかどうかを尋ねているものでした。
当時の対処(npm 6 以前)
当時は次のコマンドで警告が消えました。
npm config set scripts-prepend-node-path true
現在は不要(npm 7 以降で廃止)
結論:scripts-prepend-node-path は npm 7 で廃止され、現在の npm には存在しません。今このコマンドを実行しても設定は効かず、不明な設定として警告が出るだけです。
npm 11 の設定一覧にもこの項目はありません。したがって、この警告が出るような古い npm を使っていること自体が本当の問題です。npm は Node に同梱されているので、Node を上げれば npm も一緒に上がります。
npm だけを上げたい場合は次のコマンドですが、Node が古いままだと結局どこかで詰まります。
npm install -g npm@latest
npm run devを実行したらエラーが出る
警告を消したあと npm run dev を実行すると、今度はエラーで止まりました。
このときの Node のバージョンは v11.15.0 でした。当時としても2世代前で、Nuxt が要求するバージョンを満たしていませんでした。
なお、このとき動かそうとしていたのは Vue のサンプルプロジェクトでした。フレームワーク側の問題ではなく、実行環境の Node が古かったことが原因です。
Node.jsのバージョンを上げて解決する
結論:Node のバージョン管理ツールを使って LTS に上げます。macOS なら n か nvm のどちらかを使ってください。
▼nとnvmの違い
| n | nvm | |
|---|---|---|
| 入れ方 | npm でインストール | シェルスクリプトを実行 |
| 切り替え | システム全体のNodeを置き換える | シェルごとに切り替えられる |
| プロジェクト別の固定 | できない | .nvmrc で指定できる |
| 向いている人 | 常に1つのバージョンでよい人 | 案件ごとにバージョンが違う人 |
古い gulp のために Node を下げる、といった事情がある場合は nvm を選んでください。プロジェクトごとに切り替えられるので、下げたまま戻し忘れる事故が起きません。
nを使ってアップデートする
n をインストールします。
npm install -g n
LTS 版に上げます。
sudo n lts
sudo n latest ではなく sudo n lts を使ってください。latest は Current(最新版)を入れるコマンドで、本番向けのバージョンではありません。安定して使いたいなら LTS を選びます。
バージョンを確認します。
node -v
Active LTS のバージョンになっていれば完了です。
nvmを使ってアップデートする
nvm を入れている場合は、次のコマンドで LTS を入れて切り替えます。
nvm install --lts
nvm use --lts
プロジェクトの直下に .nvmrc を置いておくと、そのディレクトリで nvm use と打つだけで指定のバージョンに切り替わります。
lts/krypton
バージョン番号を直接書いても構いません。チームで開発する場合は、この1ファイルをリポジトリに入れておくと「手元では動くのに他の人の環境で動かない」が減ります。
同じエラーを繰り返さないための設定
結論:package.json の engines に必要な Node のバージョンを書いておくと、条件を満たさない環境でインストールしたときに警告が出ます。
{
"engines": {
"node": ">=22.0.0"
}
}
さらに強制したい場合は、プロジェクト直下に .npmrc を置いて次のように書きます。条件を満たさない環境ではインストール自体が失敗するようになります。
engine-strict=true
バージョン違いによるエラーは、エラーメッセージから原因が読み取りにくいのが厄介なところです。ツールが動かないときは、まず node -v を疑うと回り道が減ります。今回のケースも、警告に書かれたオプションを設定するより先にバージョンを確認していれば、1手で終わっていました。
Node やターミナル周りの環境を整え直したい場合は、MacにHomebrewとVimをインストールする手順とパス設定もあわせてどうぞ。パスの通し方でつまずいたときの確認手順をまとめています。