【问题标题】:How to pass arguments between package.json scripts [duplicate]如何在 package.json 脚本之间传递参数 [重复]
【发布时间】:2020-02-14 22:44:56
【问题描述】:

我正在尝试减少 package.json 中的脚本重复。如果我可以参数化脚本,那会很有帮助。

如何从脚本中的任意位置访问参数(并将其保存在 package.json 中,而不是为此创建外部 js 文件),而不仅仅是让节点将参数附加到行尾? 请注意,在某些情况下,我想多次使用同一个参数。

例如

这是我目前拥有的,并且有效:

{
  "name": "angular-apps",
  "scripts": {
    "start-drt": "ng serve data-review --open",
    "build-drt": "ng lint data-review --type-check && ng build data-review",
    "build-drt-prod": "ng lint data-review --type-check && node replace-nonce data-review && ng build data-review --prod --progress=false && ng test data-review --watch=false --reporters teamcity",
... // etc.
/* There are several more application scripts that aren't listed.
   The only difference is the project name (e.g. `data-review` in this case).
   They all follow the same pattern as the set of scripts above. */

我想要的是这样的(这不起作用,因为它试图使用 $1 字面意思而不是变量):

{
  "name": "angular-apps",
  "scripts": {
    "start-app": "ng serve $1 --open",
    "build-app": "ng lint $a --type-check && ng build $a",
    "build-app-prod": "ng lint $1 --type-check && node replace-nonce $1 && ng build $1 --prod --progress=false && ng test $1 --watch=false --reporters teamcity",

    "start-drt": "npm run start-app data-review",
    "build-drt": "npm run build-app data-review",
    "build-drt-prod": "npm run build-app-prod data-review",

    "start-sat": "npm run start-app section-analysis",
    "build-sat": "npm run build-app section-analysis",
    "build-sat-prod": "npm run build-app-prod section-analysis",
... // etc. Now I can add more apps and re-use the same scripts for all of them

【问题讨论】:

  • 是的......我认为这是一个骗局。基本上......如果没有 Bash 或外部脚本,我想做的事情就无法完成...... :-(

标签: node.js angular package.json


【解决方案1】:

你可以这样做。

// package.json
script: {
     start: "ng serve $*"
 }

然后像这样调用它npm run start analytics_app它命名为process.argv

【讨论】:

  • 这在这种情况下不起作用,因为参数只是被附加到末尾。我会在脚本的中间和几个地方需要它们。
猜你喜欢
  • 2016-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-03
  • 1970-01-01
  • 2021-12-19
  • 2014-10-09
相关资源
最近更新 更多