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などを用いる場合はそうはいかないため、それはまた別記事にします。