🖥
npm / node.js – package.json の scripts ( npm run xxx ) の挙動が謎 - コマンド引数と
結論
scripts は「 npm run xxx 」 より後に指定したコマンド引数を受け取って、コマンド末尾で処理しているように見える
標準出力させる例 (1)
package.json に標準出力するだけの scripts を書いておく
{
"scripts": {
"echo": "echo"
}
}
コマンド実行例
- npm コマンド例
npm run echo ABC
- scriptとして実行されるコマンド
echo ABC
npm run echo
に渡した引数 ( ABC
) を echo コマンドがそのまま受け取るようだ
標準出力する例 (2)
package.json を以下のようにして、コマンド実行を明示的に終わらせるとどうなるだろう
( コマンド末尾に ;
を追加 )
{
"scripts": {
"echo": "echo;"
}
}
引数を渡して実行する
npm run に渡した引数 ( ABC
) が次のコマンドとして評価され、実行されるようだ
- npm コマンド例
npm run echo ABC
- scriptとして実行されるコマンド
echo; ABC
実行結果:
sh: ABC: command not found
引数にコマンドを渡してみる
- npm コマンド例
npm run echo ls some_dir
- scriptとして実行されるコマンド
echo; ls some_dir
ls コマンドと引数 ( 対象ディレクトリ ) を渡して、 ls コマンドが実行できてしまった
フラグを渡してみる
- npm コマンド例
npm run echo ls -la
- scriptとして実行されるコマンド
echo; ls
フラグは渡せないようだ
環境
- node v20.11.0
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
プロフィール・経歴
公開日時
2024-02-19
Discussion