npm run serve?
業務でモックサーバーのデータをもらいREADME
を見ていると
見慣れないコマンドを発見。
起動方法: npm run serve
そのままコマンドをGoogle先生に聞いてもnpm
コマンドにrun
はあるが
serve
を指定しているものは見つからなかったので調べてみました。
※業務で見たモックサーバーはnodemonを利用していたため
今回の記事と少し状況が違いますが伝えたいことはnpm runの動作です
結論: package.jsonのscriptsに設定されたコマンドを実行している
説明のために以下の記事で作成したExpressサーバーを利用します。
ExpressでWebサーバーを立ててみる
記事でも書いてますがExpressを起動するために以下のコマンドを実行すると記載し、実際に起動します。
node app.js
ならnpm run serve
でなんで起動するの??
npm run
npm run serve
の実際の文法的な表現はnpm run <script名>
になります。
script名ってなに?と調べてみると
package.json
内にあるscripts
内で宣言されているプロパティ名になります。
そのため、今回のようにnpm run serve
でExpressを起動する場合は
`package.jsonに以下のように設定します。
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"serve": "node app.js"
}
この状態でnpm run serve
を実行すると
package.json
のscripts
のserve
に設定されているnode app.js
コマンドが実行され
app.js
に記載したExpressが起動します。
今回のような場合だとわざわざnpm run <script名>
を使わずにnode app.js
でよくない?となると思いますが、
nodemon
などを用いる場合はそうはいかないため、それはまた別記事にします。