【问题标题】:Passing CLI args to pre-command in package.json [duplicate]将 CLI args 传递给 package.json 中的预命令 [重复]
【发布时间】:2020-04-29 20:18:36
【问题描述】:

假设我的 package.json 中有:

{
  "scripts": {
    "prebuild": "some-command",
    "build": "some-other-command"
  }
}

如果我现在运行 npm run build -- --some-argsprebuild 命令 some-command 不会--some-args 传递给它。我怎样才能将它传递给所有的前置/后置脚本?

【问题讨论】:

  • 你不能。这是 pre-hook 和 post-hook 的限制。
  • @jonrsharpe 看起来这确实发生在某一时刻? github.com/npm/npm/issues/6343
  • 该问题要求执行pre 或使用&& 链接命令。答案只说前者。
  • 好吧,您已经为自己说明了这种行为,并找到了它被取出的地方,很难看出还有什么令人困惑的地方。

标签: javascript npm package.json


【解决方案1】:

你也许可以使用环境变量来做到这一点:

"scripts": {                                                                  
    "prebuild": "echo $FLAG \"prebuild\"",                                
    "build": "echo \"testing\""                                                     
}

如果你运行npm run build


> test@1.0.0 prebuild /test
> echo $FLAG "prebuild"

prebuild

> test@1.0.0 build /test
> echo "testing"

testing

如果你运行FLAG=-n npm run build:

> test@1.0.0 prebuild /test
> echo $FLAG "prebuild"

prebuild
> test@1.0.0 build /test
> echo "testing"

testing

但我不确定它是否适用于多个标志

【讨论】:

  • 您实际上不需要将echo $FLAG 环境变量传递给前/后脚本
猜你喜欢
  • 2018-06-18
  • 2018-04-21
  • 1970-01-01
  • 2020-05-09
  • 2020-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多