03:2020-11-14 vue不同的api地址生產環境和開發環境配置打包
vue專案裡面,通過vue-cli中的npm run build 可對專案進行打包,可是在實際工作中可能有生產環境,測試環境甚至更多,每個環境的請求地址都是不同的,如果我們每次都手動修改請求地址並打包,將非常繁瑣,所以我們需要稍微配置一下,可以實現專案不同環境的打包配置
第一種方式
1、首先安裝cross-env,命令: npm i --save-dev cross-env;
2、在config資料夾裡面新建檔案:test.env.js,(檔名自己隨便取),格式類似:
'use strict'
module.exports = {
NODE_ENV: '"testing"',
EVN_CONFIG:'"test"',
API_ROOT:'"測試環境介面連結"'
}
3、同樣在config資料夾下面修改prod.env.js檔案,大概內容如下:
'use strict'
module.exports = {
NODE_ENV: '"production"',
EVN_CONFIG:'"prod"',
API_ROOT:'"生產環境介面連結"'
}
4、同樣config資料夾下面修改index.js檔案,如下:
build: {
prodEnv: require('./prod.env'),
testEnv: require('./test.env'),
//增加上面兩行程式碼
// Template for index.html
index: path.resolve(__dirname, '../dist/index.html')
}
5、在build資料夾下修改webpack.prod.conf.js檔案,如下:
// const env = require('../config/prod.env')
//註釋上面一行加上下面一行
const env = config.build[process.env.env_config+'Env']
6、同樣在build資料夾下面修改build.js檔案,如下:
'use strict'
require('./check-versions')()
process.env.NODE_ENV = 'production'
const ora = require('ora')
const rm = require('rimraf')
const path = require('path')
const chalk = require('chalk')
const webpack = require('webpack')
const config = require('../config')
const webpackConfig = require('./webpack.prod.conf')
// const spinner = ora('building for production...') //註釋掉
const spinner = ora('building for ' + process.env.NODE_ENV + ' of ' + process.env.env_config+ ' mode...' )//新增這行
7、最後一步,修改package.json檔案,如下:
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"build": "cross-env NODE_ENV=production env_config=prod node build/build.js",
"build:test": "cross-env NODE_ENV=testing env_config=test node build/build.js"
},
一切都配置好了,我們來做個小實驗驗證一下,app.vue檔案下列印當前環境,如下:
<script>
export default {
mounted(){
console.log(process.env)
}
}
</script>
然後我們分別檢視npm run dev,npm run build,npm run build–test這三條命令下列印的結果,如下:
API_ROOT換成自己不同環境的介面就行了,然後呼叫的時候設定axios的預設地址就行了,如下:
axios.defaults.baseURL = process.env.API_ROOT//前提引入了axious
第二種方式(待驗證)
一、先配置vue生產環境和開發環境配置不同的api地址,
vue-cli2構建的專案中,有兩個檔案是用來區分生產環境和開發環境的。
1、在config資料夾裡面新建檔案:test.env.js 和 pro.env.js
2、在main.js檔案中引入static下新建的apiConfig這個JSON檔案。
import apiConfig from '../static/apiConfig.json';
apiConfig={
"api": "apiDevUrl",
"api2": "apiDev2Url"
}
3、在main.js中新增如下程式碼:
development是開發環境,production是生產環境。這裡我用的是axios(要安裝), Vue.prototype.apiConfig是vue的全域性屬性
let env = process.env.NODE_ENV;
if (env == 'development') {
axios.defaults.baseURL = apiConfig.api//測試()
Vue.prototype.apiConfig = apiConfig
} else if (env == 'production') {
axios.defaults.baseURL = apiConfig.api2//生產()
Vue.prototype.apiConfig = apiConfig
}
4、然後在元件中使用,可直接打出log,檢視當前的api地址:
console.log(this.apiConfig)
二、開始配置不同打包環境命令
1、更改package.josn檔案
在package.json檔案的script檔案下新增"test": “node build/build.js”,
"scripts": {
"dev": "node build/dev-server.js",
"start": "node build/dev-server.js",
"build": "node build/build.js",
"test": "node build/build.js", //新增這一行程式碼
"lint": "eslint --ext .js,.vue src"
},
2、更改config/prod.env.js檔案
var targetEvent = process.env.npm_lifecycle_event;
if (targetEvent == 'test') {
var obj = {
NODE_ENV: '"development"'
}
} else if (targetEvent == 'build') {
var obj = {
NODE_ENV: '"production"'
}
}
module.exports = obj;
- 在main.js檔案中新增
//引入api檔案
import apiConfig from '../static/apiConfig.json' //測試api存放的地址
let env = process.env.NODE_ENV;
let apis = "";
if (env == 'development' || env == 'test') {
apis = apiConfig.api;
} else if (env == 'production') {
apis = apiConfig.api2;
}
4、開始打包
分別檢視npm run dev,npm run build,npm run test這三條命令下列印的結果,如下:
相關文章
- Vue 不同環境配置 API 地址VueAPI
- Nuxt.js中配置生產環境和開發環境APIUXJS開發環境API
- Webpack(開發、生產環境配置)Web
- ionic app 開發和生產環境的配置APP
- vue專案打包配置多個測試環境與生產環境,用npm命令打出不同的資源包。VueNPM
- webpack4生產環境和開發環境的對比Web開發環境
- Webpack4 學習筆記八 開發環境和生產環境配置Web筆記開發環境
- 用 Spring 區分開發環境、測試環境、生產環境Spring開發環境
- vue-cli 根據不同的環境打包Vue
- 配置開發環境、生成環境、測試環境開發環境
- Vue 分環境打包Vue
- Vue生產環境除錯的方法Vue除錯
- 基於Gulp小程式開發工作流,區分開發環境和生產環境開發環境
- emacs開發環境配置(4)——rust開發環境Mac開發環境Rust
- vue – 環境配置Vue
- 重構之路:webpack區分生產環境和開發環境Web開發環境
- 開發環境配置開發環境
- vue-cli開發環境代理配置Vue開發環境
- mirrord:輕鬆地將流量從生產環境映象到開發環境開發環境
- PHP開發環境 03 - 使用KFKDock搭建PHP專案環境PHP開發環境
- webpack開發模式和生產模式設定及不同環境指令碼執行Web模式指令碼
- 《學習 VUE - Windows 下配置 vue 的開發環境 》VueWindows開發環境
- 搭建vue的開發環境Vue開發環境
- Yarn 生產環境多佇列配置Yarn佇列
- webpack4-06-開發、生產環境、動態CDN配置Web
- 搭建VUE開發環境Vue開發環境
- 面試-JS Web API-Webpack生產環境面試JSWebAPI
- Laravel記錄執行的SQL到日誌(開發環境和生產環境都用得上)LaravelSQL開發環境
- window系統中配置Vue的開發環境Vue開發環境
- vue 多環境配置Vue
- react 配置開發環境React開發環境
- js開發環境配置JS開發環境
- Java開發環境配置Java開發環境
- weex開發環境配置開發環境
- Arduino開發環境配置UI開發環境
- Ubuntu開發環境配置Ubuntu開發環境
- vue-element-admin部署生產環境Vue
- vue不同環境的壓包配置方法(vue-cli 3.0)Vue