node里读取命令行参数

  • 时间:
  • 来源:互联网

node里读取命令行参数

一、process.env

process.env属性返回一个包含用户环境信息的对象。

最常见的需求,前端需要根据不同的环境(dev,prd),来调用不同的后端接口。如果用webpack,是这么做的:
1)package.json里的命令:

1

2

3

4

"scripts": {

"dev""cross-env NODE_ENV=development webpack-dev-server --open --hot",

"build""cross-env NODE_ENV=production webpack --progress --hide-modules"

},

  

2)webpack.config.js获取

1

console.log(process.env.NODE_ENV) //执行npm run dev,打印development

 

事实上,以上从命令行获取环境变量这个件事跟webpack没有关系,执行node文件也可以这样获取。
1)新建文件test.js:

1

console.log(global.process.env.a);

2)命令行执行test.js:

1

a=1 node test.js

命令行输出a的值1。

 

题外话,如果顺序改变呢?命令行执行下面的命令

1

node test.js a=1

 

测试结果:test.js能被执行,但获取不到a的值。

 

global.process.env.a这个变量在这次node命名结束前都能获取到,如果是以后执行也能获取到,就需要用以下的命令(mac linux):

1

export a=2 && node test.js


这条命令运行后,只要运行node文件,在文件里可以得到 global.process.env.a的值为2.

 

 二 、process.argv

还记得前面说过,下面的命令无法通过 process.env 获取。

1

node test.js a=1

这时候就要用到process.argv。他返回当前进程的所有命令行参数,是个数组,前2个元素是node命令路径和被执行的文件路径:

所以经常见到 

1

process.argv.slice(2)

 

after you
发布了277 篇原创文章 · 获赞 26 · 访问量 11万+
私信 关注

本文链接http://element-ui.cn/news/show-1878.aspx