Skip to content

如何设置环境变量

在运行某个脚本之前,先预设到当前项目的环境变量里。

1.命令行执行 export key=value

单个设置:

shell
export MY_ENV_VAR=helloworld

多个设置:

shell
export MY_ENV_VAR1=hello MY_ENV_VAR2=world

设置并执行相应脚本去获取:

shell
export MY_ENV_VAR1=hello MY_ENV_VAR2=world && node cmd.js

在 package.json 的 scripts 里设置:

json
"scripts": {
    "setenv": "export MY_ENV_VAR=helloworld && node cmd.js",
}

然后执行 npm 脚本即可:

shell
npm run setenv
js
// cmd.js

console.log(process.env.MY_ENV_VAR1); // 输出 hello
console.log(process.env.MY_ENV_VAR2); // 输出 world

删除某个环境变量:

js
delete process.env.MY_ENV_VAR2;
console.log(process.env.MY_ENV_VAR2); // 输出 undefined

2.dotenv 依赖包和.env 文件批量设置

  • 准备[.env] 文件
text
USERNAME=Believer
GENDER=Male
CITY=ShangHai
ACCOUNT=AKA_MightyApe
PASSWORD=123456
  • 安装 [dotenv] 依赖包
shell
cnpm install dotenv --save
  • 脚本内使用:引入 dotenv,并运行 config 方法 注入到当前项目环境变量中
const dotenv = require("dotenv")
dotenv.config()

console.log(process.env.USERNAME); //Believer
console.log(process.env.GENDER); //Male

3.cross-env 依赖包设置

安装:

shell
npm install --save-dev cross-env

使用:package.json 设置执行脚本

js
"scripts": {
  "development": "cross-env endPoint=development node cmd.js",
  "production": "cross-env endPoint=production node cmd.js"
}
js
// 若执行 npm run development
console.log(process.env.NODE_ENV.endPoint); // 输出 development

// 若执行 npm run production
console.log(process.env.NODE_ENV.endPoint); // 输出 production

4.通过命令行传递变量

执行脚本传递:

shell
node cmd.js development

使用:

js
let endPoint = process.argv[2];
console.log(endPoint); //输出 development

Released under the MIT License.