例えば、以下の様なpackage.jsonがあったとして、
package.json
{
...
"scripts": {
...
"pretest": "before_test_command",
"test": "test_command",
"posttest": "after_test_command",
...
},
...
}
npm test
を実行することで pretest > test > posttestの順で指定したコマンドが実行されるのは有名な話ですが、
深遠な理由によりnpmから任意のコマンドを叩きたくなったりして、以下のようなpackage.jsonを書いて
package.json
{
...
"scripts": {
...
"prehoge": "before_hoge_command",
"hoge": "hoge_command",
"posthoge": "after_hoge_command",
...
},
...
}
npm hoge
とか叩いてももちろん実行されません。
そういう時はnpm run hoge
と実行するとprehoge > hoge > posthogeの順で実行してくれます。