欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何設置process.env.NODE_ENV生產(chǎn)環(huán)境模式

 更新時間:2021年09月14日 11:38:03   作者:時清云  
process.env.NODE_ENV默認只有兩種狀態(tài)即development和production,本文主要介紹了process.env.NODE_ENV設置生產(chǎn)環(huán)境模式,感興趣的可以了解一下

在開始之前我先強調(diào)一下: process.env.NODE_ENV默認只有兩種狀態(tài)即development和production,development指代本地開發(fā)即localhost環(huán)境(本地的開發(fā)),而production代表發(fā)布在任何服務上的服務(不管是dat、uat還是生產(chǎn)環(huán)境),node是不知道你服務是測試還是正式,除非你手動指定。通常認為都是線上環(huán)境。所以可以這樣認為development代表本地開發(fā)環(huán)境,production代表線上環(huán)境(包括dat、uat和生產(chǎn)環(huán)境等)

我為什么會強調(diào)這一點呢?

因為有人居然用process.env.NODE_ENV中的development來代表dat,uat等線上的測試環(huán)境,所以特別強調(diào)一下,development代表本地的開發(fā)環(huán)境。

最近系統(tǒng)接入了公司的單點登錄,為了登陸成功后再跳回系統(tǒng)的主頁面,又申請了測試和沙箱的域名(之前都是直接用IP登的),本地開發(fā)是配置的host。接入之后發(fā)現(xiàn)了一個非常麻煩的點就是給單點登錄傳的跳轉(zhuǎn)地址每次都要修改,開發(fā)的時候要寫成開發(fā)的域名,測試的時候要改成測試的域名,進沙箱的時候要改成跳轉(zhuǎn)沙箱的域名,上線的時候又要改成線上的域名。特別是在測試階段,開發(fā)測試來回切換,不勝其煩。
于是就想把它寫成配置文件,根據(jù)不同環(huán)境加載不同的配置,這樣就不用來回改了。這個時候,process.env就跳入了腦海。

扒一扒process.env

process對象是全局變量,它提供當前node.js的有關信息,以及控制當前node.js的有關進程。因為是全局變量,它對于node應用程序是始終可用的,無需require()。

既然process都是一個對象了,env自然是它的一個屬性,這個屬性返回包含用戶環(huán)境信息的對象。在終端輸入node后,在輸入process.env可以看到打印出來的信息。

主角出場 process.env.NODE_ENV

NODE_ENV不是process.env對象上原有的屬性,那它是怎么添加上的呢?

先舉個例子:

在package.json中,如下:

{
  "name": "yun-nobile",
  "version": "2.0.0",
  "description": "太保標準移動端產(chǎn)品2.0,基于vue",
  "main": "yunprod.js",
  "scripts": {
    "build": "cross-env NODE_ENV=production node yunprod.js build",
    "dev": "node yunprod.js dev"
  }
  ...
}  

在我們執(zhí)行 npm run build 腳本命令時,會執(zhí)行cross-env NODE_ENV=production node yunprod.js build,把NODE_ENV設置為production,所以 process.env.NODE_ENV就被設置為production了 。

所以 process.env.NODE_ENV是我們執(zhí)行腳本命令時添加上去的一個全局環(huán)境變量。

process.env.NODE_ENV用來確定當前所處的開發(fā)階段。一般生產(chǎn)階段設為production,開發(fā)階段設為develop,然后在腳本中讀取process.env.NODE_ENV。
運行腳本時,可以這樣改變環(huán)境變量, 在package.json文件的scripts里面添加命令:

NODE_ENV=production node build.js

但是這個命令使用Windows的同學拉下代碼后就報錯了,因為Windows上面設置的方式不一樣

set NODE_ENV=production node build.js

但是不同電腦上不同的設置肯定是不行的呀,這個時候cross-env趕來救場了。
cross-env可以跨平臺的設置和使用環(huán)境變量

npm install --save-dev cross-env

接下來我們就可以通過cross-env來設置了

cross-env NODE_ENV=production node build.js

這樣設置之后,我們可以在腳本中使用process.env.NODE_ENV了,但是不能在模塊中使用,要想在模塊當中直接使用,我們還需要一些配置

在 webpack 4+ 中,你可以使用 mode 選項:

module.exports = {
  mode: 'production'
}

但是在 webpack 3 及其更低版本中,你需要使用 DefinePlugin:

var webpack = require('webpack')

module.exports = {
  // ...
  plugins: [
    // ...
    new webpack.DefinePlugin({
      'process.env.NODE_ENV': JSON.stringify('production')
    })
  ]
}

這樣就可以直接使用啦_
現(xiàn)在我們要在模塊中根據(jù)環(huán)境變量來配置不同的url了

let url = '';
 if (process.env.NODE_ENV === 'testing') {
   url = 'http://my.test.cn';
 } else if (process.env.alpord === 'alpord') {
   url = 'http://my.alpord.cn';
 } else if (process.env.NODE_ENV === 'production') {
   url = 'http://my.product.cn';
 } else {
   url = 'http://my.develop.cn';
 }

或者是

let url = '';
process.env.NODE_ENV === 'production'?url = 'http://my.product.cn':url = 'http://my.test.cn';

到此這篇關于如何設置process.env.NODE_ENV生產(chǎn)環(huán)境模式的文章就介紹到這了,更多相關process.env.NODE_ENV設置生產(chǎn)環(huán)境模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 利用Node.js了解與測量HTTP所花費的時間詳解

    利用Node.js了解與測量HTTP所花費的時間詳解

    這篇文章主要給大家介紹了關于利用Node.js了解與測量HTTP所花費的時間的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-09-09
  • node.js基于mongodb的搜索分頁示例

    node.js基于mongodb的搜索分頁示例

    本篇文章主要介紹了node.js基于mongodb的搜索分頁示例,mongodb分頁很簡單,這里整理了詳細的代碼,有需要的小伙伴可以參考下。
    2017-01-01
  • Node.js 獲取微信JS-SDK CONFIG的方法示例

    Node.js 獲取微信JS-SDK CONFIG的方法示例

    這篇文章主要介紹了Node.js 獲取微信JS-SDK CONFIG的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • 詳解基于node的前端項目編譯時內(nèi)存溢出問題

    詳解基于node的前端項目編譯時內(nèi)存溢出問題

    本篇文章主要介紹了基于node的前端項目編譯時內(nèi)存溢出問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • NodeJs中的VM模塊詳解

    NodeJs中的VM模塊詳解

    這篇文章主要介紹了NodeJs中的VM模塊詳解,本文講解了什么是VM? 、VM模塊的runInThisContext、runInThisContext方法等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • 使用Node操作MySQL的兩種方式

    使用Node操作MySQL的兩種方式

    本文將介紹如何在?Node.js?應用中使用?mysql2?和?TypeORM?兩種方式操作?MySQL?數(shù)據(jù)庫,文中通過代碼示例介紹的非常詳細,對大家的學習有一定的幫助,需要的朋友可以參考下
    2024-05-05
  • node.js安裝超詳細步驟教程(推薦!)

    node.js安裝超詳細步驟教程(推薦!)

    其實Node.js就是運行在服務端的JavaScript,Node.js是一個基于Chrome?JavaScript運行時建立的一個平臺,下面這篇文章主要給大家介紹了關于node.js安裝超詳細步驟教程的相關資料,需要的朋友可以參考下
    2023-06-06
  • 我的Node.js學習之路(四)--單元測試

    我的Node.js學習之路(四)--單元測試

    在專業(yè)化的軟件開發(fā)過程中,無論什么平臺語言,現(xiàn)在都需要UnitTest單元測試. Node.js有built-in的Assert。 今天讓我們來看一下Node.js的單元測試。在這兒我們使用nodeunit
    2014-07-07
  • nodejs express搭建服務并熱更新文件過程詳解

    nodejs express搭建服務并熱更新文件過程詳解

    這篇文章主要為大家介紹了nodejs express搭建服務并熱更新文件過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • 用node和express連接mysql實現(xiàn)登錄注冊的實現(xiàn)代碼

    用node和express連接mysql實現(xiàn)登錄注冊的實現(xiàn)代碼

    本篇文章主要介紹了用node和express連接mysql實現(xiàn)登錄注冊的實現(xiàn)代碼,具有一定的參考價值,有興趣的可以了解一下
    2017-07-07

最新評論