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

詳解vue-cli4 配置不同開(kāi)發(fā)環(huán)境打包命令

 更新時(shí)間:2023年07月26日 11:30:03   作者:鯨洛洛  
這篇文章主要介紹了vue-cli4 配置不同開(kāi)發(fā)環(huán)境打包命令,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

前言

為什么會(huì)需要配置多種環(huán)境變量?

在一個(gè)產(chǎn)品的開(kāi)發(fā)過(guò)程中,一般來(lái)說(shuō)都是會(huì)經(jīng)歷這么一個(gè)過(guò)程:本地開(kāi)發(fā) → 測(cè)試版部署 → 測(cè)試 → 預(yù)上線 → 正式上線。對(duì)應(yīng)的每一個(gè)環(huán)節(jié)中的服務(wù)器地址,接口地址...都會(huì)不一樣。那么我們需要怎么去處理這種情況。

一. 如何配置環(huán)境變量

1. 創(chuàng)建文件

在 vue-cli4 的腳手架構(gòu)建的項(xiàng)目根目錄中新建一個(gè) .env.[model] 文件,model 為一個(gè)變量,可以通過(guò)這個(gè) model 的變量值來(lái)判斷當(dāng)前屬于哪個(gè)環(huán)境。model 可以根據(jù)你的需求來(lái)修改, 該文件中寫(xiě)上對(duì)應(yīng)的鍵值對(duì)。你需要多少個(gè)環(huán)境,就創(chuàng)建多少個(gè) .env.[model] 在根目錄中,文件如下圖。

# 預(yù)發(fā)環(huán)境
.env.beta
# 開(kāi)發(fā)環(huán)境
.env.development
# 生產(chǎn)環(huán)境
.env.production
# 測(cè)試環(huán)境
.env.test

簡(jiǎn)單說(shuō)明一下,為什么要?jiǎng)?chuàng)建四個(gè)文件

首先我們創(chuàng)建的文件名必須是 .env.xxx,.env.xxx 文件的 xxx 必須是和 package.json 里的 script 對(duì)象內(nèi)部的命令一致。

舉個(gè)例子:

我們創(chuàng)建了 .env.test 這個(gè)文件,那么我們配置的打包命令 build:test 的值 "vue-cli-service build --mode test",--mode 后面的 test 必須跟文件 .env.test 一致,這樣我們打包命令才會(huì)找到環(huán)境變量文件里面配置的參數(shù) "build:test": "vue-cli-service build --mode test"

請(qǐng)注意?。?!

只有 NODE_ENVBASE_URL 和以 VUE_APP_ 開(kāi)頭的變量將通過(guò) webpack.DefinePlugin 靜態(tài)地嵌入到客戶端側(cè)的代碼中。這是為了避免意外公開(kāi)機(jī)器上可能具有相同名稱的私鑰。

2. 環(huán)境變量文件說(shuō)明

現(xiàn)在我們來(lái)到配置文件,這個(gè)配置文件的功能是為了判斷當(dāng)前打包環(huán)境是生產(chǎn)還是測(cè)試,或者本地,當(dāng)然你也可以有很多的環(huán)境。在配置文件中我們通過(guò) process.env.VUE_APP_BASE_URL 這個(gè)全局字段去判斷環(huán)境, 然后將對(duì)應(yīng)的接口地址匹配上。注意一點(diǎn),上面的 NODE_ENV = "production" 不可以省略,vue-cli 4.0 及之后的版本會(huì)根據(jù) NODE_ENV = "production" 來(lái)判斷是否生產(chǎn)環(huán)境,如果你改變了這個(gè)就會(huì)被默認(rèn) NODE_ENV = "development",development 和 production 模式下打包出來(lái)的包結(jié)構(gòu)會(huì)不同,為了一致性,所以配置文件的第一個(gè)字段應(yīng)該設(shè)置為 NODE_ENV = "production"。

.env.test (測(cè)試環(huán)境變量)

NODE_ENV = "test"
VUE_APP_BASE_URL = "接口請(qǐng)求測(cè)試地址"
VUE_APP_API = "接口請(qǐng)求測(cè)試地址"

.env.production (正式環(huán)境變量)

NODE_ENV = "production"
VUE_APP_BASE_URL = "接口請(qǐng)求正式地址"
VUE_APP_API = "接口請(qǐng)求正式地址"

.env.beta (預(yù)發(fā)環(huán)境變量)

NODE_ENV = "beta"
VUE_APP_BASE_URL = "接口請(qǐng)求預(yù)發(fā)地址"
VUE_APP_API = "接口請(qǐng)求預(yù)發(fā)地址"

.env.development (開(kāi)發(fā)環(huán)境變量)

NODE_ENV = "development"
VUE_APP_BASE_URL = "/api"  // vue 跨域代理配置的標(biāo)識(shí)
VUE_APP_API = "測(cè)試環(huán)境地址"

說(shuō)明一下開(kāi)發(fā)環(huán)境變量文件 VUE_APP_BASE_URL 的值指向的是我們?cè)?nbsp;vue.config.js 配置的跨域代理的字符串標(biāo)識(shí).

module.exports = {
  publicPath: './',
  devServer: {
    proxy: {
      '/api': {
        target: '接口請(qǐng)求測(cè)試地址', // API 服務(wù)器的地址
        ws: true,  // 代理 websockets
        changeOrigin: true, // 虛擬的站點(diǎn)需要更管 origin
        pathRewrite: {   // 重寫(xiě)路徑 比如 '/api/aaa/ccc' 重寫(xiě)為 '/aaa/ccc'
          '^/api': ''
        }
      }
    }
  }
}

3. 配置打包命令

package.json 文件下的腳本:

{
  "script": {
    "dev": "vue-cli-service serve && webpack-dev-server --open --mode dev",
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "build:dev": "vue-cli-service build --mode development",
    "build:prod": "vue-cli-service build --mode production",
    "build:beta": "vue-cli-service build --mode beta",
    "build:test": "vue-cli-service build --mode test"
  }
}

上面提到創(chuàng)建的 .env.[model] 文件,文件名中的 model 對(duì)應(yīng) package.json 文件中的打包腳本 --model [model]

例如我現(xiàn)在想打包正式環(huán)境,正式環(huán)境對(duì)應(yīng) .env.[model] 就是 .env.prop

在 package.json 的 script 中添加 "build:prod": "vue-cli-service build --mode production",其中 production 這個(gè)對(duì)應(yīng)配置文件名的 mode,這樣 webpack 打包的時(shí)候會(huì)自動(dòng)跟蹤到這個(gè)文件,并去讀取其中的各種配置字段, 我們?cè)陧?xiàng)目中任意位置就可以通過(guò) process.env.xx 拿到其中 xx 配置屬性。

現(xiàn)在我們只需要運(yùn)行對(duì)應(yīng)的腳本命令就可以打包對(duì)應(yīng)環(huán)境的項(xiàng)目代碼。例如:我現(xiàn)在想打包 production 環(huán)境下的項(xiàng)目,在控制臺(tái)運(yùn)行 npm run build:prod,就可以執(zhí)行正式環(huán)境打包。運(yùn)行 npm run build:dev,則可以打包測(cè)試環(huán)境,該模式也可用于自動(dòng)化部署。

綜上所述,vue-cli4.x版本的打包命令和環(huán)境變量就配置完成了。

到此這篇關(guān)于vue-cli4 配置不同開(kāi)發(fā)環(huán)境打包命令的文章就介紹到這了,更多相關(guān)vue-cli4 打包命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • eslint常見(jiàn)的一些報(bào)錯(cuò)及解決方法

    eslint常見(jiàn)的一些報(bào)錯(cuò)及解決方法

    這篇文章主要給大家介紹了關(guān)于eslint常見(jiàn)的一些報(bào)錯(cuò)及解決方法,解決eslint的報(bào)錯(cuò)問(wèn)題可以要根據(jù)報(bào)錯(cuò)行數(shù)快速定位.文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • Vue如何使用CSS自定義變量

    Vue如何使用CSS自定義變量

    這篇文章主要介紹了Vue如何使用CSS自定義變量,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下
    2021-05-05
  • 使用vue打包時(shí)gzip壓縮的兩種方案

    使用vue打包時(shí)gzip壓縮的兩種方案

    這篇文章主要介紹了使用vue打包時(shí)gzip壓縮的兩種方案小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • uniapp一鍵打包H5的詳細(xì)步驟

    uniapp一鍵打包H5的詳細(xì)步驟

    uniapp如何打包到H5并成功發(fā)布,以及在打包過(guò)程中會(huì)遇到的坑如何解決,本文將一一講解,文中通過(guò)圖文結(jié)合的方式給大家講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-10-10
  • 一文帶你深入理解Vue3中的emit使用

    一文帶你深入理解Vue3中的emit使用

    這篇文章主要介紹了Vue3中通過(guò)emit實(shí)現(xiàn)父子組件通信的方法,包括基礎(chǔ)概念、使用方法、配合props實(shí)現(xiàn)完整父子通信、在TypeScript中的類型推斷以及注意事項(xiàng)與最佳實(shí)踐,需要的朋友可以參考下
    2025-01-01
  • 在Vue 中使用Typescript的示例代碼

    在Vue 中使用Typescript的示例代碼

    這篇文章主要介紹了在Vue 中使用Typescript的示例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09
  • vue 2.1.3 實(shí)時(shí)顯示當(dāng)前時(shí)間,每秒更新的方法

    vue 2.1.3 實(shí)時(shí)顯示當(dāng)前時(shí)間,每秒更新的方法

    今天小編就為大家分享一篇vue 2.1.3 實(shí)時(shí)顯示當(dāng)前時(shí)間,每秒更新的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • vue中Form 表單的 resetFields() 失效原因及問(wèn)題解決

    vue中Form 表單的 resetFields() 失效原因及問(wèn)題解決

    在Vue項(xiàng)目中,使用formRef.value.resetFields()方法重置表單時(shí)可能遇到不起作用的問(wèn)題,下面就來(lái)介紹一下如何解決,感興趣的可以了解一下
    2024-09-09
  • Vue2.x配置路由導(dǎo)航守衛(wèi)實(shí)現(xiàn)用戶登錄和退出

    Vue2.x配置路由導(dǎo)航守衛(wèi)實(shí)現(xiàn)用戶登錄和退出

    之前在Vue的學(xué)習(xí)中通過(guò)路由導(dǎo)航守衛(wèi)控制實(shí)現(xiàn)了用戶登錄模塊的功能,本文基于Vue2.x進(jìn)行實(shí)現(xiàn),在此將實(shí)現(xiàn)過(guò)程進(jìn)行記錄與總結(jié),感興趣的可以了解一下
    2021-08-08
  • vue中keepAlive組件的作用和使用方法詳解

    vue中keepAlive組件的作用和使用方法詳解

    vue里提供了keep-alive組件用來(lái)緩存狀態(tài),這篇文章主要給大家介紹了關(guān)于vue中keepAlive組件的作用和使用方法的相關(guān)資料,需要的朋友可以參考下
    2021-07-07

最新評(píng)論