vue-cli 3.X 配置不同 運行/打包 環(huán)境

由于項目需要在各種環(huán)境的打包切換過程中,由于缺少環(huán)境常量需要手動修改相關(guān)請求Api域名等配置達到預期目的。
進而導致如果項目存在多個環(huán)境時,多環(huán)境沒辦法自動化構(gòu)建。比較麻煩,故此增加此配置方法,操作方法如下:

提示:

npm run serve時會把 process.env.NODE_ENV 設置為 ‘development’;
npm run build 時會把 process.env.NODE_ENV 設置為 ‘production’;

第一步. 創(chuàng)建 .env 文件

在根目錄 創(chuàng)建 .env 文件, 內(nèi)容如下

VUE_APP_PROJ_NAME = '默認地址'
VUE_APP_BASE_URL = 'http://xx.xx.xx.88'

vue-cli中規(guī)定

只有以 VUE_APP_ 開頭的變量會被 webpack.DefinePlugin 靜態(tài)嵌入到客戶端側(cè)的包中。
代碼中可以通過process.env.VUE_APP_SECRET這樣訪問。

第二步.創(chuàng)建.env.test文件

VUE_APP_PROJ_NAME = '測試地址'
VUE_APP_BASE_URL = 'http://xx.xx.xx.99'

第三步.創(chuàng)建.env.pro文件

VUE_APP_PROJ_NAME = '生產(chǎn)地址'
VUE_APP_BASE_URL = 'http://xx.xx.xx.66'

第四步.修改 package.json 文件

"scripts":?{
?????"serve":?"vue-cli-service?serve",? //本地運行 默認取 .env 文件內(nèi)容
? ? ?"serve:test":?"vue-cli-service?serve?--mode?test",???//運行 測試地址 取.env.test 文件內(nèi)容
? ? ?"serve:pro":?"vue-cli-service?serve?--mode?pro",??//運行 生產(chǎn)地址 取.env.pro 文件內(nèi)容
? ? ?"build":?"vue-cli-service?build",?//本地打包?默認取 .env 文件內(nèi)容
? ? ?"build:test":?"vue-cli-service?build?--mode?test", //打包 生產(chǎn)地址 取.env.pro 文件內(nèi)容
? ? ?"build:pro":?"vue-cli-service?build?--mode?pro" //打包 生產(chǎn)地址 取.env.pro 文件內(nèi)容
?}

/注意,這里 “--mode?名字“ 要和步驟2中文件名 “.env.名字” 名字保持一致

第五步.在vue.config.js?加入如下代碼:

devServer:?{
????port:?'8123',?//代理端口
????open:?false,?//項目啟動時是否自動打開瀏覽器,我這里設置為false,不打開,true表示打開
????proxy:?{
?????????'/api':?{
????????????????target:?process.env.VUE_APP_HTTP_URL, // 配置里 接口地址
????????????????changeOrigin:?true,?//是否跨域
? ? ? ? ? ? ? ? pathRewrite:?{?//重寫路徑
????????????????????????'^/api':?'/'??
????????????????}
? ? ? ? ? ? }
????????}
? ??}

第六步.在http 的封裝的 axios 請求中, 加入如下代碼:

// 配置里 本地請求 虛擬代理地址 與 proxy 名稱 相同 即 ==>? /api/
// 生產(chǎn)環(huán)境 則是 接口實際地址 http://xx.xx.xx.xx , 如有跨域 需要服務器 做一下 接口轉(zhuǎn)發(fā)即可
axios.defaults.baseURL?= process.env.NODE_ENV?===?'development'???'/api/'?:?process.env.VUE_APP_HTTP_URL;

第七步.運行 / 打包不通環(huán)境

npm run serve? // 默認地址 .env
npm run build // 默認地址 .env

npm run serve:test // 測試地址?.env.test
npm run build?:test // 測試地址

npm run serve:pro // 生產(chǎn)地址?.env.pro
npm run build?:test // 測試地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容