npm run で Missing script エラーが出てスクリプトを実行できない
npm run xxx で Missing script エラーが出るのは、package.json の scripts にキーが無い、実行ディレクトリが違う、workspace の指定漏れの 3 系統。npm run を引数なしで実行し、現在の package.json の script 一覧を確認するのが最短。
公開: 更新:
要約
npm ERR! Missing script は package.json の scripts にキーが無い、または 見ている package.json が違う のどちらか。npm run を引数なしで実行すれば現在のディレクトリの全 script が表示されるので、まずそこで切り分ける。
よくある原因
- typo / 別名:
startをserveと書くなど、ドキュメントと実装で script 名が違う - 間違ったディレクトリ: monorepo で
apps/web配下にいるのに root の script を期待している - workspace の指定漏れ: workspaces 構成で
-wを付けずに root から子の script を呼んでいる package.json破損: 末尾カンマや quote の不整合で JSON 全体が読めず、scripts も空扱いscript-shell設定: 過去にnpm config set script-shellで無効な shell を指定していると、全 script が失敗する
解決策
1. 一覧表示で確認する
npm run引数なしで実行すると、現在のディレクトリの package.json に定義された script 一覧が表示される。
ここに無ければ存在しない(npm-run-script 公式(新しいタブで開く) 参照)。
2. package.json を直接確認する
jq .scripts package.jsonjq が無ければ cat package.json でも可。
typo の確認はここで終わらせる。
3. ディレクトリ位置を確認する
pwd
ls package.jsonmonorepo では root と app それぞれに package.json がある。
app 側を動かしたいなら cd apps/web してから npm run dev。
4. workspace の場合
# root から子 workspace の script を指定
npm run build -w @scope/app
# 全 workspace で実行(script が無い workspace は skip)
npm run build --workspaces --if-presentscripts の挙動全般は公式の Using npm/scripts(新しいタブで開く)を参照。
5. shell 設定をリセット
npm config get script-shell
npm config delete script-shell # 既定(OS 標準シェル)に戻すユーザ単位の ~/.npmrc の設定が壊れていると、全 script が command not found を返す。
実行例
なお npm 10.6.0 からログの接頭辞が npm ERR! から npm error に変わったため、以下の出力は npm error 形式になっている。
npm 10.5 以前では同じエラーが npm ERR! Missing script と表示されるが、原因と対処はどちらも同じである。
scripts = {"test":"echo \"Error: no test specified\" && exit 1"}$ npm run build
npm error Missing script: "build"
npm error
npm error To see a list of scripts, run:
npm error npm run
npm error A complete log of this run can be found in: /root/.npm/_logs/2026-08-02T08_46_04_864Z-debug-0.log
終了コード: 1$ npm run
Lifecycle scripts included in tmp.8tnqrbayqo@1.0.0:
test
echo "Error: no test specified" && exit 1$ npm pkg set scripts.build="echo building && echo done"
scripts = {"test":"echo \"Error: no test specified\" && exit 1","build":"echo building && echo done"}$ npm run build
> tmp.8tnqrbayqo@1.0.0 build
> echo building && echo done
building
done
終了コード: 0— 2026-08-02 時点の出力