环境变量(environment variables) 不属于 NodeJS
范畴,它是操做系统用于设定执行环境的参数。会在程序运行时传递给应用程序。
NodeJS
获取环境变量,是经过 global
对象中的 process
进程对象获取的。linux
process.env.env_name //获取对应环境变量的值
环境变量在 NodeJS中的应用,经常使用于区分当前的环境是测试环境仍是正式环境shell
if(process.env.NODE_ENV === ‘dev’){ //测试环境 }else{ //正式环境 }
也能够进一步的根据环境导出对应的参数配置(参数的导出彻底在配置文件内部本身判断,本身消化)json
# config.js var dev = {}; var build = {}; module.exports = process.env.NODE_ENV === ’dev' ? dev : build;
其次须要注意的是在package.json中直接为脚本(scripts)设置环境变量:windows
{ 'run': "NODE_ENV = \" DEV \"" }
因为 script中的命令会在命令行工具中进行执行,可是不一样的命令行工具,其差别性很大,并且不一样的系统,其shell工具差别更大,因此跨平台的兼容性很是堪忧,基本上咱们并不会直接使用上面的方式,而是经过一个NPM插件来解决:cross-env
。bash
{ 'run': "cross-env NODE_ENV = \" DEV \"" }
cross-env
的做用就是能跨平台地设置及使用环境变量。编辑器
最后,既然说到不一样平台其环境变量配置具备差别,这里我就以经常使用的三个平台为例,来简单的学习一下环境变量的配置工具
永久:“我到电脑” -> “属性” -> “高级系统设置” -> “环境变量” : (修改后记得保存)
临时:学习
set #获取全部的环境变量 set keyname #查询指定的环境变量,eg:set PATH set keyname=value #设置一个环境变量 echo %keyname% #在控制台(CMD)中输出一个环境变量,eg: echo %PATH%
永久:若是是系统级的环境变量请使用“vi编辑器”编辑 /etc/profile
文件,若是是用户级别的环境变量,则进入到对应的用户目录修改 .profile
文件。
临时:测试
set #查看全部环境变量 env #只查看用户级别的环境变量 export keyname=value #设置一个环境变量 echo $keyname #显示指定环境变量的值,eg:echo $PATH
引用环境变量的格式:$keyname
,所以若是想合并多个环境变量的值到一个指定的环境变量,能够经过 :
隔开。ui
export a=1 export b=2 export c=$a:$1
永久:若是修改的是系统级别的,请修改 /etc/profile
文件或者是 /etc/paths
,若是是用户级别的,则修改:~/.bash_profile | ~/.bash_login | ~/.profile | ~/.bashrc
等。
临时:
export keyname=value #增长环境变量 echo $keyname #输出指定环境变量的值, eg:echo $path
引用一个环境变量,则附加 $
符号
export PATH=~/user/name:$PATH