如何设置环境变量
在运行某个脚本之前,先预设到当前项目的环境变量里。
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