Setting process.env var in package.json

穿精又带淫゛_ 提交于 2019-12-07 08:12:17

问题


I am trying to set and retrieve node app process.env vars using package.json, so by researching the issue, I've found an example to set / retrieve process.env through the 'config' section, so I added a new config section as shown below :

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

But I couldn't access any of the above vars from server.js using for example:

console.log(process.env.npm_package_config_var1); 

So I was wondering how I can set / retrieve process.env var using package.json? Thanks

*I am using npm 4.4.1, node 7.4.0 and I run the app using (npm run dev)


回答1:


You cannot just set environment variables in package.json.

You can set them in your script sections using:

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

or:

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

using the cross-env module. See:

  • https://www.npmjs.com/package/cross-env

Environment variables are something that your programs get at runtime, not something stored in a config - unless you use something like dotenv, see:

  • https://www.npmjs.com/package/dotenv

but this is using the .env file, not package.json.




回答2:


You cannot just set environment variables in package.json.

Yes you can.

You may try out node -p process.env as your npm script to inspect your env variable. And ensure that nothing else overwrites your values. Here is another example which works for me.




回答3:


I don't really understand, what are you trying to do.

But if you want to retrieve env variables you have to do define your dev script in your package.json like this : NODE_ENV=dev node index.js

Then fetch your env with : process.env.NODE_ENV




回答4:


This will only work if you start your application using npm:

so have:

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

then:

npm run start

and within server.js this will display the variable correctly:

console.log(process.env.npm_package_config_var1); 


来源:https://stackoverflow.com/questions/42624054/setting-process-env-var-in-package-json

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!