【问题标题】:Run npm script with optional params使用可选参数运行 npm 脚本
【发布时间】:2022-01-15 15:23:06
【问题描述】:

我想运行一个接受可选参数的 npm 脚本,并为未传递的参数的默认值提供回退,

例如:

我在 pacakge.json 中定义了这个“示例”脚本:

  "scripts": {
     "example": "echo input"
  },

我想传入“输入”作为参数含义:

如果我运行npm run example --input=true,那么它将输出true

如果我在没有参数的情况下运行npm run example,那么它将输出false

我修改了我的pacakge.json 以接受input 参数:

  "scripts": {
     "example": "echo %npm_config_input%"
  },

现在当我运行 npm run example --input=truenpm run example --input=false 我分别得到“真”或“假”,但是当我运行npm run example 时,我得到的结果是%npm_config_input%

我想给参数一个默认值,这样当它没有显式传入时 - 将使用默认值,类似于:

  "scripts": {
     "example": "echo %npm_config_input% || 'false'"
  },

所以运行npm run example 将导致'false'

这可能吗?

【问题讨论】:

    标签: npm npm-scripts


    【解决方案1】:

    您可以使用https://www.npmjs.com/package/@naholyr/cross-env 包来实现它,它支持变量的默认值。最重要的是,它将使您的脚本与操作系统无关。方法如下:

    "scripts": {
        "example": "cross-env INPUT=${npm_config_input:false} npm run _example",
        "_example": "cross-env command $INPUT"
    },
    

    出于我未知的原因,使用echo 作为command打印变量值。但是我成功地使用这种模式来运行sass,如果没有传递参数,则带有参数和后备值。

    【讨论】:

      猜你喜欢
      • 2019-08-18
      • 2015-04-13
      • 2015-10-30
      • 1970-01-01
      • 2016-04-28
      • 2016-08-28
      • 1970-01-01
      • 1970-01-01
      • 2022-10-22
      相关资源
      最近更新 更多