//重定向路徑
const path = require('path');
function resolve (dir) {
return path.join(__dirname, dir)
}
module.exports = {
chainWebpack: (config) => {
config.resolve.alias
.set('$css',resolve('/static/css'))
.set('$common',resolve('/components'))
.set('$api',resolve('/api'))
.set('$page',resolve('/pages'))
.set('$js',resolve('/static/js'));
}
};
//刪除打印
module.exports = {
chainWebpack: (config) => {
// 發行或運行時啟用了壓縮時會生效
config.optimization.minimizer('terser').tap((args) => {
const compress = args[0].terserOptions.compress
// 非 App 平台移除 console 代碼(包含所有 console 方法,如 log,debug,info...)
compress.drop_console = true
compress.pure_funcs = [
'__f__', // App 平台 vue 移除日志代碼
'console.log', // 可移除指定的 console 方法
'console.info', // 可移除指定的 console 方法
]
return args
})
}
};
//簡單配置方式1:
//跟webpack的寫法一樣
module.exports = {
configureWebpack: {
plugins: [
new MyAwesomeWebpackPlugin()
]
}
}
//簡單配置方式2:
//函數返回值,里面可以條件判斷
//生產環境和運行環境
module.exports = {
configureWebpack: config => {
if (process.env.NODE_ENV === 'production') {
// 為生產環境修改配置...
console.log("生產環境111")
} else {
// 為開發環境修改配置...
console.log("開發環境222")
}
}
};
鏈式操作:
可以類比以前webpack設置的方式,這種寫法只不過換成鏈式操作而已。
// vue.config.js
module.exports = {
chainWebpack: config => {
config.module
.rule('vue')
.use('vue-loader')
.loader('vue-loader')
.tap(options => { // 設置處理的具體選項
return options
})
config.module
.rule('graphql') // 設置規則名稱
.test(/.graphql$/) // 設置篩選文件的規則
.use('graphql-tag/loader') // 使用處理文件的loader
.loader('graphql-tag/loader') // 載入loader對文件進行處理
.end()
// 你還可以再添加一個 loader
.use('other-loader')
.loader('other-loader')
.end()
}
}