npm error Missing script: "start" は、package.json の "scripts" に、start という名前が書かれていないときのエラーです。 npm start・npm run dev は、package.json に書かれたコマンドを実行する仕組みなので、書かれていない名前は実行できません。

まず npm run(名前を付けずに)を実行し、使える名前の一覧を見ます。

$ npm run
Lifecycle scripts included in web@1.0.0:
  test
    echo testing
available via `npm run-script`:
  dev
    echo dev-server
  build
    echo building

この例では start が無く、開発用のサーバーは npm run dev で起動します。

原因 確かめ方 直し方
プロジェクトでの名前が違う(start ではなく dev) npm run の一覧 一覧にある名前で実行(npm run dev)
違うフォルダで実行している ls package.json、pwd package.json のあるフォルダに移る
名前の打ち間違い エラー文の Did you mean this? 表示された名前で実行
モノレポ(ワークスペース)の一番上で実行した 一番上の package.json に scripts が無い npm run dev -w パッケージ名

確認環境:npm 10.9.7、Node.js 22.22.2 で再現しました(確認日 2026年10月11日)。

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「npm Missing script: startの直し方」

再現

{
  "name": "web",
  "version": "1.0.0",
  "scripts": { "dev": "echo dev-server", "build": "echo building", "test": "echo testing" }
}
$ npm start
npm error Missing script: "start"
npm error
npm error Did you mean one of these?
npm error   npm star # Mark your favorite packages
npm error   npm stars # View packages marked as favorites
npm error
npm error To see a list of scripts, run:
npm error   npm run

Did you mean に表示された npm star は、パッケージにお気に入りの印を付ける、別のコマンドです。 名前が似ているので表示されただけで、開発用のサーバーとは関係ありません。エラー文の最後にあるとおり、npm run で一覧を見ます。

プロジェクトの種類で、名前が違う

プロジェクト 開発用のサーバー 本番用のビルド 本番用のサーバー
Vite(React・Vue など) npm run dev npm run build npm run preview(確認用)
Next.js npm run dev npm run build npm start(build のあと)
自分で作った Node.js のサーバー package.json の書き方しだい ― server.js があれば npm start

Vite の公式ドキュメントに載っている既定の scripts は dev・build・preview で、start はありません。 Next.js の公式ドキュメントの例では dev・build・start があり、start は本番用のサーバーを起動します。チュートリアルの npm start を、Vite のプロジェクトで実行すると、このエラーになります。

test と start は、run を省ける

打ったコマンド 結果(確認環境)
npm run dev dev-server
npm dev Unknown command: "dev"(run が必要)
npm test testing(run を省ける)
npm start scripts に無いので Missing script(ただし下の例外あり)

npm run の一覧で Lifecycle scripts に表示されるもの(test・start など)は、run を省けます。それ以外は npm run 名前 と書きます。

例外:start が無くても、server.js があれば動く

$ echo 'console.log("server.js started")' > server.js
$ npm start
server.js started

scripts に start が無くても、同じフォルダに server.js があると、npm start で node server.js が実行されました。 npm の公式ドキュメントにも、start が定義されていないと node server.js を実行すると書かれています。server.js が無いときだけ、Missing script: "start" になります。 確認環境では、index.js だけを置いた場合は Missing script: "start" のままでした。

"scripts": {
  "start": "node app.js"
}

app.js を起動したいなら、このように start を書いておきます。

違うフォルダで実行している

実行した場所 結果
package.json の無いフォルダ npm error code ENOENT … Could not read package.json(エラーが違う)
別の package.json があるフォルダ(モノレポの一番上など) Missing script: "dev"
package.json のあるフォルダ 動いた

一番気づきにくいのは、上のフォルダにも package.json がある場合です。エラーは Missing script になり、「フォルダが違う」とは表示されません。

mono/
├── package.json            ← scripts が無い(ワークスペースの設定だけ)
└── packages/
    └── app/
        └── package.json    ← "dev" がある
直し方 コマンド 結果
フォルダを移る cd packages/app → npm run dev 動く
ワークスペースを指定 npm run dev -w app app-dev(動いた)
フォルダを指定 npm run dev --prefix web 動いた

名前の打ち間違い

$ npm run buid
npm error Missing script: "buid"
npm error
npm error Did you mean this?
npm error   npm run build # run the "build" package script

似た名前のスクリプトがあると、Did you mean this? に正しい名前が表示されました。

確認の手順(チェックリスト)

順番 確認すること 方法
1 使える名前 npm run
2 今いるフォルダ pwd、ls package.json
3 正しい package.json か cat package.json の "name"
4 プロジェクトの種類 Vite・Next.js の名前の表
5 モノレポか 一番上の package.json の workspaces

よくある質問

Q. package.json に start を足せばよいですか。 A. チームで「npm start で起動する」と決めているなら、"start": "vite" のように足してもよいでしょう。ただし、Next.js のように start が本番用のサーバーを意味するプロジェクトもあるため、既存のプロジェクトでは、まず README と npm run の一覧に従うほうが安全です。

Q. npm install でエラーになる場合は。 A. 依存関係のエラーは原因が違います。関連記事の「npm ERR! ERESOLVEの原因と直し方|peer依存の読み方」「npm EACCES: permission deniedの直し方」で扱っています。

まとめ

  • package.json の scripts に無い名前を実行したエラー
  • npm run で、使える名前の一覧を見る
  • Vite は npm run dev。start は無い
  • server.js があると、start が無くても npm start で動く(npm の特別な動き)
  • 上のフォルダの package.json で実行していると、フォルダ違いでも Missing script になる

参考・出典

確認日はいずれも 2026年10月11日です。

  • npm Docs「npm-start」:https://docs.npmjs.com/cli/v10/commands/npm-start
  • Vite「はじめに」(Getting Started):https://vite.dev/guide/
  • Next.js Docs「Installation」:https://nextjs.org/docs/app/getting-started/installation

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「npm Missing script: startの直し方」

株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。

WE ARE HIRING

RJCで一緒に開発しながら、
成長を楽しみませんか?

RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!

  • 127日年間休日
  • 12時間平均残業時間
  • 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!

ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ

RJCで一緒に開発しながら、 成長を楽しみませんか?