将命令行variables传递给npm脚本?

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

在我的package.json中:

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

并通过命令行:

 npm start -- --bucket_name="test" 

但是bucket_name不断返回为空,所以var没有正确传递。 我认为这是简单的,但我无法弄清楚我做错了什么。

您提出了两种分配variables的方法。

第一个,使用npm script

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

此方法设置可从process.env.bucket_name访问的bucket_name 环境variables

第二种方法,通过命令行

 npm start -- --bucket_name="test" 

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

它并不是说这个variables没有被设置为一个或另一个,它只是在你访问的地方。 其中每个设置不同的地方bucket_name