最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

我為什么會強(qiáng)調(diào)這一點(diǎn)呢?

因?yàn)橛腥司尤挥胮rocess.env.NODE_ENV中的development來代表dat,uat等線上的測試環(huán)境,所以特別強(qiáng)調(diào)一下,development代表本地的開發(fā)環(huán)境。

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

扒一扒process.env

process對象是全局變量,它提供當(dāng)前node.js的有關(guān)信息,以及控制當(dāng)前node.js的有關(guān)進(jìn)程。因?yàn)槭侨肿兞浚鼘τ趎ode應(yīng)用程序是始終可用的,無需require()。

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

主角出場 process.env.NODE_ENV

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

先舉個(gè)例子:

在package.json中,如下:

{
  "name": "yun-nobile",
  "version": "2.0.0",
  "description": "太保標(biāo)準(zhǔn)移動端產(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 腳本命令時(shí),會執(zhí)行cross-env NODE_ENV=production node yunprod.js build,把NODE_ENV設(shè)置為production,所以 process.env.NODE_ENV就被設(shè)置為production了 。

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

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

NODE_ENV=production node build.js

但是這個(gè)命令使用Windows的同學(xué)拉下代碼后就報(bào)錯(cuò)了,因?yàn)閃indows上面設(shè)置的方式不一樣

set NODE_ENV=production node build.js

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

npm install --save-dev cross-env

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

cross-env NODE_ENV=production node build.js

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

在 webpack 4+ 中,你可以使用 mode 選項(xiàng):

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';

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

相關(guān)文章

  • node.js中使用socket.io制作命名空間

    node.js中使用socket.io制作命名空間

    這篇文章主要介紹了node中使用socket.io制作命名空間,需要的朋友可以參考下
    2014-12-12
  • 詳解用Node.js實(shí)現(xiàn)Restful風(fēng)格webservice

    詳解用Node.js實(shí)現(xiàn)Restful風(fēng)格webservice

    本篇文章主要介紹了詳解用Node.js實(shí)現(xiàn)Restful風(fēng)格webservice,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • NodeJs讀取JSON文件格式化時(shí)的注意事項(xiàng)

    NodeJs讀取JSON文件格式化時(shí)的注意事項(xiàng)

    本文是作者在進(jìn)行NodeJs開發(fā)時(shí)偶然發(fā)現(xiàn)的問題,經(jīng)過一番努力,最終找到解決方案,分享給大家,有需要的小伙伴可以參考下
    2016-09-09
  • koa上傳excel文件并解析的實(shí)現(xiàn)方法

    koa上傳excel文件并解析的實(shí)現(xiàn)方法

    這篇文章主要介紹了koa上傳excel文件并解析的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • node+koa實(shí)現(xiàn)數(shù)據(jù)mock接口的方法

    node+koa實(shí)現(xiàn)數(shù)據(jù)mock接口的方法

    本篇文章主要介紹了node+koa實(shí)現(xiàn)數(shù)據(jù)mock接口的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • 解決Linux無法正常安裝與卸載Node.js的方法

    解決Linux無法正常安裝與卸載Node.js的方法

    最近在學(xué)習(xí)node.js,所以下面這篇文章主要給大家介紹了關(guān)于如何解決Linux無法正常安裝與卸載Node.js的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • Node.js包管理器npm的具體使用

    Node.js包管理器npm的具體使用

    Node.js安裝包中都帶有一個(gè)重要的工具 包管理器npm,本文主要介紹了Node.js包管理器npm的具體使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Node.js編寫組件的三種實(shí)現(xiàn)方式

    Node.js編寫組件的三種實(shí)現(xiàn)方式

    這篇文章主要介紹了Node.js編寫組件的三種實(shí)現(xiàn)方式,包括純js實(shí)現(xiàn)、v8 API實(shí)現(xiàn)(同步&異步)、借助swig框架實(shí)現(xiàn),感興趣的小伙伴們可以參考一下
    2016-02-02
  • Node.js進(jìn)程管理之子進(jìn)程詳解

    Node.js進(jìn)程管理之子進(jìn)程詳解

    本文詳細(xì)講解了Node.js進(jìn)程管理之子進(jìn)程,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • Node Express用法詳解【安裝、使用、路由、中間件、模板引擎等】

    Node Express用法詳解【安裝、使用、路由、中間件、模板引擎等】

    這篇文章主要介紹了Node Express用法,結(jié)合實(shí)例形式詳細(xì)分析了node.js Express安裝、使用、路由、中間件、模板引擎等相關(guān)概念、原理及操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05

最新評論

从江县| 辽宁省| 江陵县| 寿光市| 个旧市| 望城县| 汾阳市| 杭锦旗| 辛集市| 伊春市| 台东市| 四平市| 大田县| 盱眙县| 临安市| 四子王旗| 嵊州市| 景德镇市| 湖北省| 修武县| 龙南县| 石景山区| 桃园市| 琼中| 洛浦县| 吐鲁番市| 西吉县| 姚安县| 长乐市| 盖州市| 望都县| 天柱县| 赤城县| 崇仁县| 丹棱县| 定陶县| 临城县| 贺兰县| 连州市| 乌拉特前旗| 康平县|