将参数传播到与 && 结合的两个命令

Propagate arguments to two commands combined with &&

我在 package.json 中有两个命令结合 '&&':

  "scripts": {
    "someAction": "node dist/scripts/actionOne && node -r dist/scripts/actionTwo"
  },

是否可以从 cli 调用此脚本,将参数传递给 'actionOne' 和 'actionTwo'?

调用时 npm run someAction -- firstArg, secondArg 参数仅传递给 'actionOne' 脚本。

*actionOne 和 actionTwo 期望的参数数量相同。

如果有真正的答案,我想知道。但是,你也可以制作这样的脚本

一些-action.sh

set -e
dist/scripts/ActionOne $@
dist/scripts/ActionTwo $@

然后将其放入您的 package.json

"scripts": {
  "someAction": "bash some-action.sh"
},

查看 docs 后,npm-run-all 似乎可以使用 参数占位符。

我们可以使用占位符将以 -- 开头的参数提供给脚本。

$ npm-run-all build "start-server -- --port {1}" -- 8080

这对于传递来自 npm 运行 命令的参数很有用。

{
    "scripts": {
        "start": "npm-run-all build \"start-server -- --port {1}\" --"
    }
}

$ npm run start 8080

> example@0.0.0 start /path/to/package.json
> npm-run-all build "start-server -- --port {1}" -- "8080"

所以你可以这样做:

{
    "scripts": {
        "start": "npm-run-all dist/scripts/actionOne -- --arg {1} && dist/scripts/actionTwo -- --arg2 {2}"
    }
}

然后:

npm run start arg1 arg2