繁体   English   中英

在package.json中设置process.env var

[英]Setting process.env var in package.json

我正在尝试使用package.json设置和检索节点app process.env变种,所以通过研究这个问题,我找到了一个通过'config'部分设置/检索process.env的例子,所以我添加了一个新的配置部分如下图所示:

"config" : { "var1" : "test", "var2" : "test2", "var3" : "test3" },

但我无法使用例如来自server.js的任何上述变量访问:

console.log(process.env.npm_package_config_var1); 

所以我想知道如何使用package.json设置/检索process.env var? 谢谢

*我正在使用npm 4.4.1,节点7.4.0并且我使用(npm run dev)运行应用程序

您不能只在package.json中设置环境变量。

您可以使用以下命令在脚本部分中设置它们:

"scripts": {
  "start": "ENV_VAR=abc node app.js",
},

要么:

 "scripts": {
  "start": "cross-env ENV_VAR=abc node app.js",
},

使用cross-env模块。 看到:

环境变量是程序在运行时得到的东西,而不是存储在配置中的东西 - 除非你使用像dotenv这样的东西,参见:

但这是使用.env文件,而不是package.json。

您不能只在package.json中设置环境变量。

是的你可以。

您可以尝试使用node -p process.env作为npm脚本来检查您的env变量。 并确保没有别的东西会覆盖你的价值观。 这是另一个适合我的例子

我真的不明白,你想做什么。

但是如果你想要检索env变量,你必须在package.json定义你的开发脚本,如下所示: NODE_ENV=dev node index.js

然后使用: process.env.NODE_ENV获取你的env

这仅在您使用npm启动应用程序时才有效:

所以有:

"scripts": {
    "start": "node server.js"
},
"config" : { "var1" : "test", "var2" : "test2", "var3" : "test3" }

然后:

npm run start

在server.js中,这将正确显示变量:

console.log(process.env.npm_package_config_var1); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM