node里读取命令行参数
一、process.env
process.env
属性返回一个包含用户环境信息的对象。
最常见的需求,前端需要根据不同的环境(dev,prd),来调用不同的后端接口。如果用webpack,是这么做的:
1)package.json里的命令:
1 2 3 4 |
|
2)webpack.config.js获取
1 |
|
事实上,以上从命令行获取环境变量这个件事跟webpack没有关系,执行node文件也可以这样获取。
1)新建文件test.js:
1 |
|
2)命令行执行test.js:
1 |
|
命令行输出a的值1。
题外话,如果顺序改变呢?命令行执行下面的命令
1 |
|
测试结果:test.js能被执行,但获取不到a的值。
global.process.env.a这个变量在这次node命名结束前都能获取到,如果是以后执行也能获取到,就需要用以下的命令(mac linux):
1 |
|
这条命令运行后,只要运行node文件,在文件里可以得到 global.process.env.a的值为2.
二 、process.argv
还记得前面说过,下面的命令无法通过 process.env 获取。
1 |
|
这时候就要用到process.argv。他返回当前进程的所有命令行参数,是个数组,前2个元素是node命令路径和被执行的文件路径:
所以经常见到
1 |
|