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

基于vue cli 通過(guò)命令行傳參實(shí)現(xiàn)多環(huán)境配置

 更新時(shí)間:2018年07月12日 08:40:07   作者:obliviousSing  
這篇文章主要介紹了vue項(xiàng)目通過(guò)命令行傳參實(shí)現(xiàn)多環(huán)境配置(基于@vue/cli)的相關(guān)資料,需要的朋友可以參考下

大多數(shù)項(xiàng)目都有生產(chǎn)環(huán)境和開(kāi)發(fā)環(huán)境,一般情況下應(yīng)該夠了,但是有時(shí)候還需要sit,uat,本地等環(huán)境,這時(shí)候假如要通過(guò)注釋的方式切換環(huán)境就相當(dāng)麻煩了. 如果可以像下面這樣切換環(huán)境就方便了

npm run serve //默認(rèn)本地開(kāi)發(fā)環(huán)境

npm run serve -sit //本地開(kāi)發(fā)中使用sit環(huán)境

npm run serve -uat //本地開(kāi)發(fā)中使用uat環(huán)境

npm run build //默認(rèn)打包后使用生產(chǎn)環(huán)境

npm run build -local //打包后使用本地環(huán)境

npm run build -sit //打包后使用sit環(huán)境

`npm run build -uat //打包后使用uat環(huán)境

如果對(duì)@vue/cli還不熟的話,建議看看這篇文章http://www.fzitv.net/article/138055.htm

我們首先在根目錄下面創(chuàng)建一個(gè)vue.config.js文件,如圖

 

vue.config.js代碼如下:

const webpack = require('webpack')
const environment = require('./build/environment')
module.exports = {
 baseUrl: '/wxperp/',
 configureWebpack: {
 plugins: [
 new webpack.DefinePlugin({
 'process.env.STAGE': JSON.stringify(environment.stage),
 'process.env.LOCAL_URL': JSON.stringify(environment.localUrl)
 })
 ]
 }
}

new webpack.DefinePlugin的作用是允許你創(chuàng)建一個(gè)在編譯時(shí)可以配置的全局常量

然后在根目錄創(chuàng)建一個(gè)build文件夾,里面創(chuàng)建一個(gè)environment.js的文件

 

environment.js代碼如下:

const os = require('os')
// 獲取命令行變量
const configArgv = JSON.parse(process.env.npm_config_argv)
const original = configArgv.original.slice(1)
const stage = original[1] ? original[1].replace(/-/g, '') : ''
// 本地ip地址
let localUrl
try {
 const network = os.networkInterfaces()
 localUrl = network[Object.keys(network)[0]][1].address
} catch (e) {
 localUrl = 'localhost'
}
localUrl = 'http://' + localUrl + '/'

module.exports = {
 stage, localUrl
}

這個(gè)stage就是你輸入的變量,比如你輸入 npm run serve -sit 那么stage的值就為sit

這個(gè)localUrl就是你本地的ip,不過(guò)很多人應(yīng)該用不到,我們公司比較特殊,開(kāi)發(fā)的時(shí)候,接口請(qǐng)求的地址都是請(qǐng)求的自己本地服務(wù)器, 如果不自動(dòng)獲取本地ip,那么每個(gè)同事都得在配置文件中保留一份自己得ip地址,很麻煩,所以就自動(dòng)獲取了.

接下來(lái)再src目錄下面創(chuàng)建一個(gè)config.js,記得在main.js中引用這個(gè)config.js

 

environment.js代碼如下:

(() => {
 const urlMap = {
 local: process.env.LOCAL_URL + 'api',
 sit: 'http://xxx.xxx.xxx:xxxx/sit/api',
 uat: 'http://xxx.xxx.xxx:xxxx/uat/api',
 prod: 'http://xxx.xxx.xxx:xxxx/prod/api'
 }
 //sit,uat,prod
 let stage = process.env.STAGE
 //development,production
 const nodeEnv = process.env.NODE_ENV
 //nodeEnv為production并且stage不存在默認(rèn)為生產(chǎn)環(huán)境
 if (nodeEnv === 'production' && !stage) {
 stage = 'prod'
 } else {
 //stage不存在默認(rèn)為本地開(kāi)發(fā)環(huán)境
 stage = stage || 'local'
 }
 console.log('ip:' + urlMap[stage])
})()

我們輸入 npm run serve -sit ,頁(yè)面打印如下:

 

再啰嗦下,process.env.NODE_ENV是@vue/cli提供的,貌似有三個(gè)值(development,production,test),

你運(yùn)行 npm run serve 得到的就是development

你運(yùn)行 npm run build 得到的就是production

你運(yùn)行 npm run test 得到的就是test (我沒(méi)試過(guò))

我默認(rèn)打包是打包生產(chǎn)環(huán)境,當(dāng)然你也可以輸入?yún)?shù)打包其他環(huán)境

總結(jié)

以上所述是小編給大家介紹的基于vue cli 通過(guò)命令行傳參實(shí)現(xiàn)多環(huán)境配置,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • el-table?動(dòng)態(tài)合并不定項(xiàng)多級(jí)表頭的方法

    el-table?動(dòng)態(tài)合并不定項(xiàng)多級(jí)表頭的方法

    本文主要介紹了el-table?動(dòng)態(tài)合并不定項(xiàng)多級(jí)表頭的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Vue3的效率提升主要表現(xiàn)在哪些方面示例解析

    Vue3的效率提升主要表現(xiàn)在哪些方面示例解析

    Vue3帶來(lái)了許多性能優(yōu)化和效率提升的特性,本文將重點(diǎn)討論Vue3在靜態(tài)提升、預(yù)字符串化、緩存事件處理函數(shù)、Block?Tree和PatchFlag方面的改進(jìn),我們將通過(guò)對(duì)比Vue2和Vue3的編譯結(jié)果來(lái)說(shuō)明這些方面的效率提升
    2023-12-12
  • Vue transx組件切換動(dòng)畫庫(kù)示例詳解

    Vue transx組件切換動(dòng)畫庫(kù)示例詳解

    這篇文章主要為大家介紹了Vue transx組件切換動(dòng)畫庫(kù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Vue實(shí)現(xiàn)按鈕旋轉(zhuǎn)和移動(dòng)位置的實(shí)例代碼

    Vue實(shí)現(xiàn)按鈕旋轉(zhuǎn)和移動(dòng)位置的實(shí)例代碼

    這篇文章主要介紹了Vue實(shí)現(xiàn)按鈕旋轉(zhuǎn)和移動(dòng)位置的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-08-08
  • 詳解vue2如何處理xml格式的數(shù)據(jù)

    詳解vue2如何處理xml格式的數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了在vue2中如何處理xml格式的數(shù)據(jù),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以參考一下
    2024-03-03
  • Nuxt 嵌套路由nuxt-child組件用法(父子頁(yè)面組件的傳值)

    Nuxt 嵌套路由nuxt-child組件用法(父子頁(yè)面組件的傳值)

    這篇文章主要介紹了Nuxt 嵌套路由nuxt-child組件用法(父子頁(yè)面組件的傳值),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • Vue.js實(shí)現(xiàn)下載時(shí)暫停恢復(fù)下載

    Vue.js實(shí)現(xiàn)下載時(shí)暫?;謴?fù)下載

    本文主要介紹了Vue.js實(shí)現(xiàn)下載時(shí)暫?;謴?fù)下載,通過(guò)使用XMLHttpRequest對(duì)象來(lái)控制下載過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • Vue中如何避免props驗(yàn)證失敗問(wèn)題

    Vue中如何避免props驗(yàn)證失敗問(wèn)題

    本文將探討 props 驗(yàn)證失敗的常見(jiàn)原因,并提供解決方法,幫助開(kāi)發(fā)者在 Vue 組件開(kāi)發(fā)中避免這些問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Vue3中的script?setup語(yǔ)法糖的使用及說(shuō)明

    Vue3中的script?setup語(yǔ)法糖的使用及說(shuō)明

    在這篇博客中,我們將探討?script?setup?的含義、好處以及示例代碼,幫助你更好地理解并在項(xiàng)目中合理運(yùn)用這一特性,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 詳解從vue-loader源碼分析CSS Scoped的實(shí)現(xiàn)

    詳解從vue-loader源碼分析CSS Scoped的實(shí)現(xiàn)

    這篇文章主要介紹了詳解從vue-loader源碼分析CSS Scoped的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09

最新評(píng)論

安陆市| 天等县| 布尔津县| 康乐县| 天镇县| 南江县| 陇西县| 个旧市| 三明市| 阿克陶县| 清涧县| 英山县| 柳江县| 扶风县| 卢湾区| 长岛县| 建始县| 福泉市| 承德市| 佛山市| 若羌县| 淮南市| 禄丰县| 济南市| 施秉县| 金沙县| 砚山县| 和龙市| 务川| 称多县| 兰州市| 万宁市| 铜陵市| 中卫市| 怀宁县| 伊宁市| 克什克腾旗| 南木林县| 兴仁县| 屏边| 肥西县|