次のようなpackage.jsonがあります。
_"scripts": {
"dev": "cross-env BABEL_ENV=client webpack --config webpack/client.development.js && yarn dev:stub-server | cross-env BABEL_ENV=server babel-node src/server/server.js",
"dev:stub-server": "./node_modules/.bin/robohydra ./stubs/robohydra-config.json -p 3100"
}
_
コマンドライン引数に応じて_dev:stub-server
_の構成方法を変更するために、コードにいくつかのロジックを追加しました。だから、私は次を実行するたびに、私が期待するものを得る:
_yarn dev:stub-server --results=4
$ ./node_modules/.bin/robohydra ./stubs/robohydra-config.json -p 3100 -- --results=4
_
ご覧のとおり、オプションは基になるスクリプトに転送され、すべてが期待どおりに機能します。
私の問題は、_--results
_を_yarn dev
_コマンドから_dev:stub-server
_に正しい位置に伝搬できないことです。親スクリプトは_dev:stub-server
_を実行しますが、引数は次のように最後に基礎となるスクリプトに転送されます。
_yarn dev --results=2
$ cross-env BABEL_ENV=client webpack --config webpack/client.development.js && yarn dev:stub-server | cross-env BABEL_ENV=server babel-node src/server/server.js --results=2
_
代わりに上記の作業を次のようにする方法はありますか?
_yarn dev --results=2
$ cross-env BABEL_ENV=client webpack --config webpack/client.development.js && yarn dev:stub-server --results=2 | cross-env BABEL_ENV=server babel-node src/server/server.js
_
前もって感謝します!
Yarnのrun
は、コマンドチェーンの末尾へのargs
の追加のみをサポートします。少なくとも2018年6月14日の時点では、方法はありません。それをオーバーライドします。
過去にこれが必要になったとき、自分でdev.js
私によって呼び出されたスクリプトpackage.json
、および環境変数を取り出した引数。
Macでは次を使用しています:
"scripts": {
"benchmark": "sh -c 'ng run ${0}:benchmark'",
}
次に、yarn benchmark editor
ここで、editor
は私のパラメーターです。
別の方法として、スクリプトで*.env
ファイルとcat
ファイルを使用できます。
"run":"docker build -t --build-arg VAR=`cat vars.env` -f Dockerfile .
例えば