亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

npm run serve -uat //本地開發(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://chabaoo.cn/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,不過很多人應(yīng)該用不到,我們公司比較特殊,開發(fā)的時(shí)候,接口請求的地址都是請求的自己本地服務(wù)器, 如果不自動(dòng)獲取本地ip,那么每個(gè)同事都得在配置文件中保留一份自己得ip地址,很麻煩,所以就自動(dòng)獲取了.

接下來再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)為本地開發(fā)環(huán)境
 stage = stage || 'local'
 }
 console.log('ip:' + urlMap[stage])
})()

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

 

再啰嗦下,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 (我沒試過)

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

總結(jié)

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

相關(guān)文章

  • Element-ui table中過濾條件變更表格內(nèi)容的方法

    Element-ui table中過濾條件變更表格內(nèi)容的方法

    下面小編就為大家分享一篇Element-ui table中過濾條件變更表格內(nèi)容的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • Electron vue的使用教程圖文詳解

    Electron vue的使用教程圖文詳解

    Electron相當(dāng)于一個(gè)瀏覽器的外殼,可以把網(wǎng)頁程序嵌入到殼里面,可以運(yùn)行在桌面上的一個(gè)程序,可以把網(wǎng)頁打包成一個(gè)在桌面運(yùn)行的程序。這篇文章主要介紹了electron-vue多顯示屏下將新窗口投放是其他屏幕 ,需要的朋友可以參考下
    2019-07-07
  • watch(監(jiān)視屬性)和computed(計(jì)算屬性)的區(qū)別及實(shí)現(xiàn)案例

    watch(監(jiān)視屬性)和computed(計(jì)算屬性)的區(qū)別及實(shí)現(xiàn)案例

    watch和computed是vue實(shí)例對(duì)象中的兩個(gè)重要屬性,watch是監(jiān)視屬性,用來監(jiān)視vue實(shí)例對(duì)象上屬性和方法的變化,computed被稱為計(jì)算屬性,可以將data對(duì)象中的屬性進(jìn)行計(jì)算得到新的屬性,這篇文章主要介紹了watch(監(jiān)視屬性)和computed(計(jì)算屬性)的區(qū)別,需要的朋友可以參考下
    2023-05-05
  • 淺談Vue的雙向綁定和單向數(shù)據(jù)流沖突嗎

    淺談Vue的雙向綁定和單向數(shù)據(jù)流沖突嗎

    單項(xiàng)數(shù)據(jù)流和雙向數(shù)據(jù)綁定的概念,這兩種不是相互沖突的嗎?即然能用v-model雙向數(shù)據(jù)綁定,不應(yīng)該就是雙向數(shù)據(jù)流了嗎?本文就詳細(xì)的介紹一下
    2022-04-04
  • 派發(fā)器抽離vue2單組件中的大量邏輯技巧

    派發(fā)器抽離vue2單組件中的大量邏輯技巧

    這篇文章主要為大家介紹了派發(fā)器抽離vue2單組件中的大量邏輯技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • vue中vue-cli項(xiàng)目報(bào)錯(cuò)sockjs.js報(bào)錯(cuò)問題

    vue中vue-cli項(xiàng)目報(bào)錯(cuò)sockjs.js報(bào)錯(cuò)問題

    這篇文章主要介紹了vue中vue-cli項(xiàng)目報(bào)錯(cuò)sockjs.js報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2022-12-12
  • Vue如何處理圖片加載失敗時(shí)自動(dòng)替換備用圖片

    Vue如何處理圖片加載失敗時(shí)自動(dòng)替換備用圖片

    這篇文章主要為大家詳細(xì)介紹了當(dāng)圖片加載失敗時(shí),Vue如何實(shí)現(xiàn)自動(dòng)替換備用圖片功能,文中的示例代碼簡潔易懂,有需要的小伙伴可以了解下
    2024-11-11
  • 使用Vue.js和Element-UI做一個(gè)簡單登錄頁面的實(shí)例

    使用Vue.js和Element-UI做一個(gè)簡單登錄頁面的實(shí)例

    下面小編就為大家分享一篇使用Vue.js和Element-UI做一個(gè)簡單登錄頁面的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • el-form-item?prop屬性動(dòng)態(tài)綁定不生效問題及解決

    el-form-item?prop屬性動(dòng)態(tài)綁定不生效問題及解決

    這篇文章主要介紹了el-form-item?prop屬性動(dòng)態(tài)綁定不生效問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 用Vue寫一個(gè)分頁器的示例代碼

    用Vue寫一個(gè)分頁器的示例代碼

    本篇文章主要介紹了用Vue寫一個(gè)分頁器的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04

最新評(píng)論