0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

npm / node.js – package.json の scripts ( npm run xxx ) の挙動が謎 - コマンド引数とかサブコマンドとか

Posted at

結論

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オープンチャットもご利用ください。

プロフィール・経歴

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?