C
Node.js検証済み

Start script missing error when running npm start の原因と直し方【Dockerで検証済み】

Start script missing error when running npm start の原因と解決方法。検証済みの解決コマンド付きで、現象→原因→解決→確認の順に最短で直せます。

発生したエラー

エラー出力
Start script missing error when running npm start

結論:まずこれで直ります

このエラーは package.json に 'scripts' フィールドがないか、あっても 'start' キーが定義されていない場合に発生します。下の解決コマンドを順に実行すれば直ります。

解決コマンド
cd /app && node -e "const fs=require('fs');const pkg=JSON.parse(fs.readFileSync('package.json'));pkg.scripts=pkg.scripts||{};pkg.scripts.start='node index.js';fs.writeFileSync('package.json',JSON.stringify(pkg,null,2));" && echo 'console.log("Server started successfully");' > index.js

現象どんなエラーか

次の操作を行うと(検証環境: node:20)、上記のエラーが発生します。まずは下の再現コマンドで、同じ状況を再現できることを確認してください。

検証環境:node:20

再現コマンド
mkdir -p /app && cd /app && echo '{"name":"myapp","version":"1.0.0"}' > package.json && npm start

原因なぜ起きるのか

このエラーは package.json に 'scripts' フィールドがないか、あっても 'start' キーが定義されていない場合に発生します。npm start を実行すると npm は package.json 内の scripts.start を探し、見つからない場合に 'Missing script: start' エラーを返します。修正方法は package.json の scripts セクションに start エントリを追加することです。一般的には 'node index.js' や 'node server.js' のようにエントリポイントとなるファイルを指定します。今回は scripts.start に 'node index.js' を追加し、動作確認用の最小限の index.js も作成することで問題を解消しています。

解決解決手順

修正コマンド
cd /app && node -e "const fs=require('fs');const pkg=JSON.parse(fs.readFileSync('package.json'));pkg.scripts=pkg.scripts||{};pkg.scripts.start='node index.js';fs.writeFileSync('package.json',JSON.stringify(pkg,null,2));" && echo 'console.log("Server started successfully");' > index.js

確認直ったか確認する

確認コマンド
cd /app && npm start 2>&1 | grep -q 'Server started successfully' && exit 0 || exit 1

動画で見る

この記事の解決手順は実環境で検証しています

山田 英紀(社内SE 5年以上・13業種以上の業務システムを開発/運用)が、 掲載コマンドを検証環境で実行し、再現〜解決〜確認まで通ることを確認しています。

この手順でも直らない・自社の環境で再現する場合

エラー調査・修正から、業務システムの改善までご相談いただけます。

無料で相談する

関連する記事