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中 ...
随机推荐
- Hadoop 究竟能做什么?
http://hi.baidu.com/jiuxiaoyao/item/ff0a19e5b09a953a87d9def3 现在好像大家都在讲 大数据 云计算 hadopp .那么hadoop究竟能做些 ...
- C++模板的特化与偏特化
http://cppblog.com/SmartPtr/archive/2007/07/04/27496.html (1) 类模板定义一个栈的类模板,它可以用来容纳不同的数据类型 template & ...
- Oracle基础(四)pl/sql
PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL). PL/SQL是Oracle数据库对SQL语句的扩展.在普通SQL语句的使用上添加了编程语言的特点 ...
- 1. CountDiv 数数有几个 Compute number of integers divisible by k in range [a..b].
package com.code; public class Test05_1 { public static int solution(int A, int B, int K) { // handl ...
- 创建.m文件一片空白的错误解决方式
今天写代码,想继承一个类,突然发现创建的类文件一片空白,如图 之后各种调试发现都解决不了问题,以为是装了xcode6 beta2 版本号的问题,结果发现事实上是我创建错了 我创建的是 watermar ...
- 推断client手机类型,并跳转到对应的app下载页面
实现的原理,是检測浏览器的 USER-AGENT 这个header,然后依据正則表達式来确定client类型. 假设都不匹配,Fallback回退策略是显示相应的页面.让用户自己选择. 适合採用二维码 ...
- iOS 打开扬声器以及插入耳机的操作
废话不多说说一下现状 网上好多关于扬声器的操作,可是问题多多.SDK7.X 和SDK7.X以上版本号有点诧异 #import <Foundation/Foundation.h> #impo ...
- POJ 2367:Genealogical tree(拓扑排序)
Genealogical tree Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2738 Accepted: 1838 Spe ...
- RatingBar android:isIndicator="true"
有时候我们用RatingBar只须要显示不让它选择或改变,解决办法是设置属性 android:isIndicator="true" isIndicator的意思是:是否是指示器,如 ...
- tiny4412 裸机程序 三、关闭看门狗和调用C程序【转】
本文转载自:http://blog.csdn.net/eshing/article/details/37112779 一.原理说明 上是章中大家可能有会觉得奇怪,CPU不是有看门狗嘛?为什么CPU没有 ...