我有一个类似于此的 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
提前致谢!
原文由 Luciano M. L. 发布,翻译遵循 CC BY-SA 4.0 许可协议
Yarn 的
run
仅支持将您的args
附加到命令链的末尾,并且至少截至日期 2018-06-14,没有办法覆盖它。当我过去需要这个时,我已经编写了自己的
dev.js
脚本,该脚本由我的package.json
调用,并将 args 拉出环境变量。