简介

环境变量(environment variables) 不属于 NodeJS 范畴,它是操作系统用于设定执行环境的参数。会在程序运行时传递给应用程序。

NodeJS 获取环境变量,是通过 global 对象中的 process 进程对象获取的。

process.env.env_name          //获取对应环境变量的值

应用

环境变量在 NodeJS中的应用,常用于区分当前的环境是测试环境还是正式环境

if(process.env.NODE_ENV === ‘dev’){
//测试环境
}else{
//正式环境
}

也可以进一步的根据环境导出对应的参数配置(参数的导出完全在配置文件内部自己判断,自己消化)

# config.js

var dev = {};
var build = {}; module.exports = process.env.NODE_ENV === ’dev' ? dev : build;

其次需要注意的是在package.json中直接为脚本(scripts)设置环境变量:

{
'run': "NODE_ENV = \" DEV \""
}

由于 script中的命令会在命令行工具中进行执行,但是不同的命令行工具,其差异性很大,而且不同的系统,其shell工具差异更大,所以跨平台的兼容性非常堪忧,基本上我们并不会直接使用上面的方式,而是通过一个NPM插件来解决:cross-env

{
'run': "cross-env NODE_ENV = \" DEV \""
}

cross-env 的作用就是能跨平台地设置及使用环境变量。

最后,既然说到不同平台其环境变量配置具有差异,这里我就以常用的三个平台为例,来简单的学习一下环境变量的配置

环境变量设置

Windows

永久:“我到电脑” -> “属性” -> “高级系统设置” -> “环境变量” : (修改后记得保存)

临时:

set  #获取所有的环境变量
set keyname #查询指定的环境变量,eg:set PATH set keyname=value #设置一个环境变量 echo %keyname% #在控制台(CMD)中输出一个环境变量,eg: echo %PATH%

Linux

永久:如果是系统级的环境变量请使用“vi编辑器”编辑 /etc/profile 文件,如果是用户级别的环境变量,则进入到对应的用户目录修改 .profile 文件。

临时:

set #查看所有环境变量
env #只查看用户级别的环境变量 export keyname=value #设置一个环境变量 echo $keyname #显示指定环境变量的值,eg:echo $PATH

引用环境变量的格式:$keyname,因此如果想合并多个环境变量的值到一个指定的环境变量,可以通过 : 隔开。

export a=1
export b=2
export c=$a:$1

Mac OS

永久:如果修改的是系统级别的,请修改 /etc/profile文件或者是 /etc/paths,如果是用户级别的,则修改:~/.bash_profile | ~/.bash_login | ~/.profile | ~/.bashrc 等。

临时:

    export keyname=value  #增加环境变量

    echo $keyname  #输出指定环境变量的值, eg:echo $path

引用一个环境变量,则附加 $符号

    export PATH=~/user/name:$PATH

NodeJS学习:环境变量的更多相关文章

  1. Linux学习——环境变量设置

    一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量.例如我的mips-linux-gcc编译器在“/opt/au1200_rm/build_tools/bin”目录下,b ...

  2. mac上为nodejs设置环境变量

    Mac下面的环境变量设置和Linux差不多,一般为这几个文件(左边的先加载): /etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.pro ...

  3. Linux学习 - 环境变量配置文件

    一.环境变量配置文件的作用 /etc/profile /etc/profile.d/*.sh ~/.bash_profile ~/.bashrc /etc/bashrc 1 /etc/profile的 ...

  4. 【NodeJS】环境变量配置

    安装完Node后,NodeJS自带npm.于是我照着网上的教程想搭一个脚手架.结果报错: ’node’ 不是内部或外部命令,也不是可运行的程序 但是我检查了一下系统环境变量,path底下有正确引用no ...

  5. linux学习-环境变量与文件查找

  6. CentOS7 编译安装nodejs,配置环境变量记录

    每次都装,每次都查 阿里云备案了一个域名,续费了好多年,但是没钱买服务器,就挂在github上.今天收到消息:域名解析服务器不在阿里云,要被GG.只能咬牙买了个阿里云乞丐版. 所有服务都装好了,pin ...

  7. 安装Node.js、npm和环境变量的配置

    由于Node.js平台是在后端运行JavaScript代码,所以,必须首先在本机安装Node环境. 一.安装Node.js 首先,从Node.js官网下载对应平台的安装程序,网速慢的童鞋请移步国内镜像 ...

  8. webpack配置中环境变量-process.env. NODE_ENV

    背景 webpack有一特性就是可以让使用者灵活的在不同环境(开发环境,生产环境等)进行相应的特性的策略打包,比如: 是否使用反向代理使用接口,针对不同的静态资源(如图片等)是直接拷贝还是进行打包编译 ...

  9. Nodejs学习笔记(一)--- 简介及安装Node.js开发环境

    目录 学习资料 简介 安装Node.js npm简介 开发工具 Sublime Node.js开发环境配置 扩展:安装多版本管理器 学习资料 1.深入浅出Node.js http://www.info ...

随机推荐

  1. IOS AES加密之ECB128模式

    1.AES加密模式有好几种,网上大多是CBC.256模式,找了好久才找到解决ECB128模式加密. AES需要导入头文件 #import <CommonCrypto/CommonCryptor. ...

  2. 【设计模式】—— 中介者模式Mediator

    前言:[模式总览]——————————by xingoo 模式意图 使用一个中介的对象,封装一组对象之间的交互,这样这些对象就可以不用彼此耦合. 这个中介者常常起着中间桥梁的作用,使其他的对象可以利用 ...

  3. 认清Android框架 MVC,MVP和MVVM

    编者按:现在很多时候,我们都是面向搜索(或 Google 或百度).GitHub 编程,那么,在早期没有互联网的情况下,该如何学习编程,成为一名真正的开发者?亦或是作为一名小白,如何进入互联网编程时代 ...

  4. 【BZOJ1295】[SCOI2009]最长距离(最短路)

    [BZOJ1295][SCOI2009]最长距离(最短路) 题面 BZOJ 洛谷 题解 这题很妙啊. 我们枚举一个点,只需要考虑到他的最远点就行了,显然只需要考虑一个点即可.那么这两个点之前联通的最小 ...

  5. AngularJS学习笔记3——AngularJS的工作原理

    个人觉得,要很好的理解AngularJS的运行机制,才能尽可能避免掉到坑里面去.在这篇文章中,我将根据网上的资料和自己的理解对AngularJS的在启动后,每一步都做了些什么,做一个比较清楚详细的解析 ...

  6. 使用swagger2配置springboot时出现的问题

    这个问题踩了几次坑了,这次又遇到了,不记录一下看来是不长记性了: 测试普通的增删改查的时候,发现删除和查询是对的,可是增加和更新却数据绑定不到controller的参数上面去. 因为是自定义的实体类, ...

  7. SQL Server 查询性能优化——覆盖索引

    覆盖索引又可以称为索引覆盖. 解释一: 就是select的数据列只用从索引中就能够取得,不必从数据表中读取,换句话说查询列要被所使用的索引覆盖. 解释二: 索引是高效找到行的一个方法,当能通过检索索引 ...

  8. 创建 OpenStack云主机(十一)

    创建过程 创建虚拟网络 创建m1.nano规格的主机(相等于定义虚拟机的硬件配置) 生成一个密钥对(openstack的原理是不使用密码连接,而是使用密钥对进行连接) 增加安全组规则(用iptable ...

  9. python常用模块-调用系统命令模块(subprocess)

    python常用模块-调用系统命令模块(subprocess) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. subproces基本上就是为了取代os.system和os.spaw ...

  10. C语言复习---打印菱形

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <math ...