🍺

npm script にパラメータを渡す

2023/06/07に公開

作った npm script に引数を付与する方法が意外とよくわかんなかったのでまとめた。

value を渡したい

npm run start --script_params=XXXXX

的なパラメータを渡した場合、script_params の値を受け取りたい時の package.json に書く npm script としては $npm_config_script_params と受けとることができる。

package.json
{
  ...
  "scripts": {
    "start": "node script.js $npm_config_script_params"
  },
  ...
}
script.js
console.log(process.argv)
[
  '/Users/***/.anyenv/envs/nodenv/versions/***/bin/node',
  '/Users/***/path/script.js',
  'XXXXX'
]

key-value 両方渡したい

パラメータ名ごと受け取りたい時は -- を引数につける。

npm run start -- --script_params=XXXXX --message=XX

的なパラメータを渡した場合、-- 以降の引数が process.argv に空白区切りでそのまま渡されるので分解したら使うことができる。

package.json
{
  ...
  "scripts": {
    "start": "node script.js"
  },
  ...
}
[
  '/Users/***/.anyenv/envs/nodenv/versions/***/bin/node',
  '/Users/***/path/script.js',
  '--script_params=XXXXX',
  '--message=XX'
]

デモ

AppStore のレビュー情報を CSV に保存するスクリプトを組んだので value を渡す方法での実装をしてみましたよ。
https://github.com/feb19/appstore-review-to-csv

PullRequest お待ちしております 🤗

Discussion