• NodeJS学习:环境变量


    简介

    环境变量(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
    
  • 相关阅读:
    不使用库函数,编写函数int strcmp(char *source, char *dest) 相等返回0,不等返回-1【转】
    atol实现【转】
    atol的实现【转】
    关于内存中栈和堆的区别(非数据结构中的堆和栈,区别)【转】
    ubuntu下安装android模拟器genymotion【转】
    buntu下命令行安装jdk,android-studio,及genymotion虚拟机来进行android开发【转】
    Ubuntu下安装Android studio【转】
    C++模板(二)【转】
    【转】iOS中设置导航栏标题的字体颜色和大小
    【转】Java 截取字符串
  • 原文地址:https://www.cnblogs.com/HCJJ/p/9089258.html
Copyright © 2020-2023  润新知