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 的作用就是能跨平台地設置及使用環境變量。

set  #獲取所有的環境變量
set keyname #查詢指定的環境變量,eg:set PATH

set keyname=value #設置一個環境變量

echo %keyname% #在控制台(CMD)中輸出一個環境變量,eg: echo %PATH%

 

環境變量設置

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM