前端項目部署的環境每每是多環境的,最熟悉的例如:測試環境,生產環境。不一樣的環境下每每api接口的域名地址是不一樣的,那麼就會存在一個問題,不一樣環境下項目打包部署前都須要咱們去手動更改域名地址,豈不是很麻煩,甚至會出現忘記更改或者關係搞反的狀況,那怎麼辦呢?莫慌,今天就來嘮嘮vue分環境打包這些事。html
"scripts": {
"dev": "vue-cli-service serve", //本地運行,會把process.env.NODE_ENV的值設置爲'development'(默認)
"build:dev": "vue-cli-service build --mode dev",//dev模式下打包(測試服打包),會把process.env.NODE_ENV的值設置爲'.env.dev文件中NODE_ENV聲明的值'
"build": "vue-cli-service build"//正式服打包,會把process.env.NODE_ENV的值設置爲'production'(默認)
},
複製代碼
注意:
1.命令"build:dev"是能夠自定義的,不是固定寫法,例如你能夠徹底聲明成"build-dev"等任何其餘字段.
2.--mode '名稱' 必須與如下步驟2中的.env.'名稱' 的'模式名稱'字段保持一致,這裏是必須滴. 前端
3.多環境下的應用(以不一樣生產環境下的api接口域名地址舉例)vue
<!--request.js-->
let env = process.env.NODE_ENV === 'development' ? 'development': process.env.VUE_APP_TITLE;
const baseURL = (env === 'development' || env === 'build_dev') ? store.state.testURL : store.state.baseURL;
複製代碼
4.打包
webpack
npm run build:dev 測試服打包(package.json 中定義)
npm run build 正式服打包
複製代碼
至此vue-cli 3.0中項目分環境打包方式就基本完畢,如下是小弟思考的關於小程序實現相似於分環境動態切換接口域名的方案,能夠討論討論,嘿嘿.web
小程序中__wxConfig.envVersion能夠用來區分小程序體驗版,開發板,正式版. envVersion 類型爲字符串vue-cli
envVersion: 'develop', //開發版npm
envVersion: 'trial', //體驗版json
envVersion: 'release', //正式版小程序
這樣咱們就能夠變通的來實現小程序中動態切換域名,避免手動註釋切換的方式.api
不積跬步,無以致千里;不積小流,無以成江海。