process
对象
process
对象是Node的一个全局独享,提供当前Node进程的信息。他可以在脚本的任意位置使用,不必通过require
命令加载
属性
process
对象提供了一系列的属性,用于返回系统信息
process.argv
:返回一个数组,成员是当前进程的所有命令行参数process.env
:返回一个对象,成员为当前Shell的环境变量process.pid
:返回一个数字,表示当前进程的进程号process.platform
:返回一个字符串,表示当前的操作系统,比如Linuxprocess.version
:返回一个字符串,表示当前使用的 Node 版本,比如v7.10.0
process.env
process.env
返回一个对象,包含了当前Shell的所有环境变量
通常的做法是,新建一个环境变量NODE_ENV
,用它确定当前所处的开发阶段,生产阶段设定为production
,开发阶段设定为development
,然后在脚本中读取process.env.NODE_ENV
运行脚本时改变环境变量可以采用下面的写法:
NODE_ENV=production node app.js
cross-env
如果按照上面的写法,在windows系统下是会报错的:
'NODE_ENV' 不是内部或外部命令,也不是可运行的程序或批处理文件。
因为windows下不支持这种设置环境变量的方式,正确的方法是:
set NODE_ENV=production && node app.js
但是这样需要维护两个脚本命令,使用cross-env就可以解决这个问题
cross-env提供了一个设置环境变量的脚本,让我们能够以linux的方式设置环境变量,在windows下可以兼容运行
安装:
npm install cross-env --save-dev
使用时只需要在原来的脚本前面加上cross-env
就可以了
cross-env NODE_ENV=development nodemon ./index.js