【问题标题】:Pass command line variable into npm script?将命令行变量传递给 npm 脚本?
【发布时间】:2018-01-11 11:31:28
【问题描述】:

我正在尝试将命令行(特别是不在版本控制中)选项传递给我的主 index.js 脚本,该脚本基于特定的 S3 存储桶执行一些操作。

在我的 package.json 中:

"scripts": {
  "start": "bucket_name=${bucket_name:=null} node babel.runtime.js"
},

通过命令行:

npm start -- --bucket_name="test"

但是bucket_name 一直返回为空,因此没有正确传递 var。我认为这很简单,但我无法弄清楚我做错了什么。

【问题讨论】:

标签: javascript node.js shell npm ecmascript-6


【解决方案1】:

您提出了两种将变量分配给流程的不同方法。

第一个,使用npm script

"scripts": {
  "start": "bucket_name=${bucket_name:=null} node babel.runtime.js"
}

此方法设置bucket_name 环境变量,可从process.env.bucket_name 访问。

第二种方法,通过命令行

npm start -- --bucket_name="test"

这种方法将bucket_name 设置为正在运行的进程的参数。这可以从process.argv 数组访问。

这并不是说变量没有被设置为一种或另一种方式,它只是关于您访问​​的位置。这些中的每一个都将bucket_name 设置在不同的位置。

【讨论】:

    猜你喜欢
    • 2021-05-16
    • 2013-12-07
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 2020-05-09
    相关资源
    最近更新 更多