Передача командной строки - аргумент дочернего скрипта в Yarn - PullRequest
0 голосов
/ 13 июня 2018

У меня есть 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

Заранее спасибо!

Ответы [ 3 ]

0 голосов
/ 29 марта 2019

На Mac я использую:

"scripts": {
  "benchmark": "sh -c 'ng run ${0}:benchmark'",
}

Который я тогда называю yarn benchmark editor, где editor - мой параметр.

0 голосов
/ 08 апреля 2019

В качестве альтернативы вы можете использовать *.env файл и cat переменные из него в вашем скрипте.

"run":"docker build -t --build-arg VAR=`cat vars.env` -f Dockerfile .

, например

0 голосов
/ 14 июня 2018

Пряжа run поддерживает только добавление вашего args в конец цепочки команд, и, по крайней мере, на дату 2018-06-14, нет способа переопределить это.

Когда мне это было нужно в прошлом, я создал свой собственный скрипт dev.js, который вызывался моим package.json, и вытащил аргументы из переменных среды.

...