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

所以经常见到
process.argv.slice(2)
process是node的全局变量,不用require直接能访问。中文文档标注为:进程对象。它提供当前 Node.js 进程的有关信息,以及控制当前 Node.js 进程。
node里读取命令行参数的更多相关文章
- 一只简单的网络爬虫(基于linux C/C++)————读取命令行参数及日志宏设计
linux上面的程序刚开始启动的时候一般会从命令行获取某些参数,比如以守护进程运行啊什么的,典型的例子就是linux下的man,如下图所示 实现该功能可以使用getopt函数实现,该函数在头文件uni ...
- shell脚本读取文件+读取命令行参数+读取标准输入+变量赋值+输出到文件
读取url_list文件批量下载网页 url_list http://www.tianyancha.com/company/2412078287 http://www.4399.com/special ...
- GO语言常用标准库04---flag读取命令行参数
package main import ( "flag" "fmt" "math" "os" ) /* go build ...
- python读取命令行参数的方法
1.sys模块 需要模块:sys参数个数:len(sys.argv)脚本名: sys.argv[0]参数1: sys.argv[1]参数2: sys.argv[2] test.p ...
- <记录> PHP读取命令行参数
方法一:使用$argv or $argc参数接收 echo "接收到{$argc}个参数"; print_r($argv); [root@DELL113 lee]# /usr/lo ...
- C程序获取命令行参数
命令行参数 命令行界面中,可执行文件可以在键入命令的同一行中获取参数用于具体的执行命令.无论是Python.Java还是C等等,这些语言都能够获取命令行参数(Command-line argument ...
- 手写node可读流之流动模式
node的可读流基于事件 可读流之流动模式,这种流动模式会有一个"开关",每次当"开关"开启的时候,流动模式起作用,如果将这个"开关"设置成 ...
- Python-argparse模块-获取命令行参数
#!/usr/bin/python3 """ Author : Jet Bi License : www.cyeap.com Summary : 获取命令行的参数 Not ...
- 【WPF】如何获取命令行参数
应用程序以 Main 方法为入口点,如果为 Main 方法指定一个 string[] 类型的参数,在程序运行时,这个参数会获取到传递给应用程序的命令行参数. 而 WPF 应用程序比较特殊,因为在VS中 ...
随机推荐
- oracle11g dataguard failover重建后归档日志没有被应用被NO的问题
1.主库从库归档记录不一致.例如以下所看到的: 做完failover后,坏的旧主库变成了新的从库,可是新从库的归档日志记录不一致,就是archive log list;出来的和v$archived_l ...
- HDU 5305(Friends-暴搜)
Friends Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Su ...
- 杭电 1548 A strange lift(广搜)
http://acm.hdu.edu.cn/showproblem.php?pid=1548 A strange lift Time Limit: 2000/1000 MS (Java/Others) ...
- poj 1390 Blocks (记忆化搜索)
Blocks Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 4318 Accepted: 1745 Descriptio ...
- 删除windows服务 cygwin sshd
$ cygrunsrv -R sshd 删除ssd服务
- Android 自己定义Activity基类
我们在开发App的时候有时候碰到多个界面有一个共同点的时候.比方,都有同样的TitleBar.而且TitleBar能够设置显示的文字.TitleBar上的点击事件,假设给每个Activity都写一遍T ...
- 浅析Linux字符设备驱动程序内核机制
前段时间在学习linux设备驱动的时候,看了陈学松著的<深入Linux设备驱动程序内核机制>一书. 说实话.这是一本非常好的书,作者不但给出了在设备驱动程序开发过程中的所须要的知识点(如对 ...
- 【Eclipse提高开发速度-插件篇】安装VJET插件,JS等提示开发插件
1.安装Apache Batik CSS 一般安装VJET插件会出现 Cannot complete the install because one or more required items co ...
- idea2016的使用心得 --- 太棒了
今天打开myeclipse感觉里面全是project,也懒着换地方了,因为这些代码还要时常看,索性安装了idea试试水,感觉还不错,用起来并不比myeclipse差,跟webstorm差不多,他俩就是 ...
- Java之正則表達式【使用语法】
认为好就顶一个!! ! ! 3.正則表達式 用一些特殊的有意义的字符组成的字符串(死记) 原子:正則表達式的最基本组成单位 正則表達式特殊意义的字符: . * + ?不能单独表示它们,假设非 ...