基于vue cli 通過命令行傳參實(shí)現(xiàn)多環(huá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)站的支持!
- 一文搞明白vue開發(fā)者vite多環(huán)境配置
- vue項(xiàng)目多租戶環(huán)境變量的設(shè)置
- vue項(xiàng)目多環(huán)境配置(.env)的實(shí)現(xiàn)
- vue-cli4.0多環(huán)境配置變量與模式詳解
- Vue多環(huán)境代理配置方法思路詳解
- vue.js多頁面開發(fā)環(huán)境搭建過程
- vue-cli項(xiàng)目配置多環(huán)境的詳細(xì)操作過程
- 通過vue-cli來學(xué)習(xí)修改Webpack多環(huán)境配置和發(fā)布問題
- Vue+Vite+Axios項(xiàng)目多環(huán)境以及部署前后端跨域
相關(guān)文章
Element-ui table中過濾條件變更表格內(nèi)容的方法
下面小編就為大家分享一篇Element-ui table中過濾條件變更表格內(nèi)容的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-03-03watch(監(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-05vue中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-12Vue如何處理圖片加載失敗時(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í)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-02-02el-form-item?prop屬性動(dòng)態(tài)綁定不生效問題及解決
這篇文章主要介紹了el-form-item?prop屬性動(dòng)態(tài)綁定不生效問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07