- 技術 💻
npm Missing script: startの直し方
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期連続の黒字決算。