vue-cli4腳手架搭建完成后,項(xiàng)目目錄中沒有 vue.config.js 文件骏全,需要手動創(chuàng)建
vue.config.js(相當(dāng)于之前的webpack.config.js) 是一個(gè)可選的配置文件偿洁,如果項(xiàng)目的 (和 package.json 同級的) 根目錄中存在這個(gè)文件,那么它會被 @vue/cli-service 自動加載。你也可以使用 package.json 中的 vue 字段剪芍,但是注意這種寫法需要你嚴(yán)格遵照 JSON 的格式來寫。下面是vue.config.js的相關(guān)配置
const autoprefixer = require('autoprefixer');
const pxtoviewport = require('postcss-px-to-viewport');
module.exports = {
//執(zhí)行 npm run build 統(tǒng)一配置文件路徑(本地訪問dist/index.html需'./')
//NOOE_ENV:Node.js 暴露給執(zhí)行腳本的系統(tǒng)環(huán)境變量窟蓝。通常用于確定在開發(fā)環(huán)境還是生產(chǎn)環(huán)境
//publicPath:'/'
publicPath: process.env.NODE_ENV === 'production' ? '' : '/',
outputDir: 'dist',//輸出文件目錄
assetsDir: 'assets',//放置生成的靜態(tài)資源(js,css,img,fonts)
//indexPath指定生成的輸出路徑(相對于outputDir).也可以是一個(gè)絕對路徑
// indexPath:'index.html',//可以不設(shè)置一般會默認(rèn)
// filenameHashing:true,//文件命名中是否包含了hash以便更好的控制緩存(必須是在默認(rèn)的情況下生成的index.html)
lintOnSave: false,//設(shè)置是否在開發(fā)環(huán)境下每次保存代碼時(shí)都啟用eslint驗(yàn)證
runtimeCompiler:false,//是否使用帶有瀏覽器內(nèi)置編譯的完整構(gòu)建版本(會讓應(yīng)用額外的增加10kb左右)
productionSourceMap:false,//如果你不需要生產(chǎn)環(huán)境的 source map罪裹,可以將其設(shè)置為 false 以加速生產(chǎn)環(huán)境構(gòu)建。
css: {
requireModuleExtension:true,//啟用css預(yù)加載
loaderOptions: {
postcss: {
plugins: [
autoprefixer(),
pxtoviewport({
viewportWidth: 375,
unitPrecision: 3, // 指定`px`轉(zhuǎn)換為視窗單位值的小數(shù)位數(shù)(很多時(shí)候無法整除)
viewportUnit: 'vw', // 指定需要轉(zhuǎn)換成的視窗單位运挫,建議使用vw
selectorBlackList: ['.ignore', '.hairlines'], // 指定不轉(zhuǎn)換為視窗單位的類状共,可以自定義,可以無限添加,建議定義一至兩個(gè)通用的類名
minPixelValue: 1, // 小于或等于`1px`不轉(zhuǎn)換為視窗單位谁帕,你也可以設(shè)置為你想要的值
mediaQuery: false // 允許在媒體查詢中轉(zhuǎn)換`px`
})
]
}
}
},
devServer:{
open:false,//編譯完成是否打開網(wǎng)頁,
host:'0.0.0.0',//指定使用地址峡继,默認(rèn)localhost,0.0.0.0代表可以被外界訪問
port: 1882,//訪問端口
https:false,//用于設(shè)置是否啟用https
hot:true,//開啟熱加載
inline:true,//用于設(shè)置代碼保存時(shí)是否自動刷新頁面
//注: gzip 壓縮 用于減少服務(wù)器向前端傳輸?shù)臄?shù)據(jù)量匈挖,提高瀏覽的速度碾牌。
//compress:true,//對devServer 所有服務(wù)啟用 gzip 壓縮
//注意:需要配合 open來使用康愤。如果Vue router 為 hash mode。應(yīng)在url前面補(bǔ)上/#舶吗。如:openPage: '/#/about'
// openPage:'/differenet/page',//指定deserver編譯后自動打開頁面
// headers:{//在所有響應(yīng)中添加首部內(nèi)容
// 'X-Custom-Foo':'bar'
// }
//overlay:true,//當(dāng)出現(xiàn)編譯器錯(cuò)誤或警告時(shí)征冷,在瀏覽器中顯示全屏覆蓋層。默認(rèn)禁用誓琼。
// overlay:{
// warning: true,
// errors:true,
// }
proxy:{
'/api':{//代理器中設(shè)置/api,項(xiàng)目中請求路徑為/api的替換為target
//代理地址资盅,這里設(shè)置的地址會代替axios中設(shè)置的baseURL
target:'XXXXXX', //使用url模塊解析url字符串,目標(biāo)服務(wù)器域名例如:https://testretail.sdeerlive.com/
ws:true,//開啟ws,如果是http代理此處可以不用設(shè)置
//默認(rèn)值:false 將主機(jī)標(biāo)頭的原點(diǎn)更改為目標(biāo)URL
changeOrigin: true,//如果接口跨域踊赠,需要進(jìn)行這個(gè)參數(shù)配置
//忽略api
pathRewrite:{
'^/api': '/',
//pathRewrite: {'^/api': '/'} 重寫之后url為 http://192.168.1.16:8085/xxxx
//pathRewrite: {'^/api': '/api'} 重寫之后url為 http://192.168.1.16:8085/api/xxxx
}
}
}
}
};