54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
const path = require('path')
|
|
|
|
module.exports = {
|
|
// uni-app 组件按需引入优化
|
|
transpileDependencies: ['uni-ui'],
|
|
|
|
configureWebpack: {
|
|
// 小程序性能优化
|
|
resolve: {
|
|
alias: {
|
|
'@': path.resolve(__dirname, './'),
|
|
'@components': path.resolve(__dirname, 'components'),
|
|
'@pages': path.resolve(__dirname, 'pages'),
|
|
'@subpages': path.resolve(__dirname, 'subpages'),
|
|
'@static': path.resolve(__dirname, 'static'),
|
|
'@utils': path.resolve(__dirname, 'utils'),
|
|
'@api': path.resolve(__dirname, 'api'),
|
|
'@store': path.resolve(__dirname, 'store')
|
|
}
|
|
}
|
|
},
|
|
|
|
// 针对不同平台的优化
|
|
chainWebpack: config => {
|
|
// 小程序性能优化
|
|
if (process.env.UNI_PLATFORM === 'mp-weixin') {
|
|
// 生产环境移除 console
|
|
if (process.env.NODE_ENV === 'production') {
|
|
config.optimization.minimizer('terser').tap(args => {
|
|
const compress = args[0].terserOptions.compress || {}
|
|
compress.drop_console = true
|
|
compress.drop_debugger = true
|
|
compress.pure_funcs = ['console.log', 'console.info', 'console.debug']
|
|
args[0].terserOptions.compress = compress
|
|
return args
|
|
})
|
|
}
|
|
}
|
|
},
|
|
|
|
// CSS 优化
|
|
css: {
|
|
extract: process.env.NODE_ENV === 'production',
|
|
sourceMap: false,
|
|
loaderOptions: {
|
|
scss: {
|
|
// 全局引入 scss 变量
|
|
prependData: `
|
|
@import "static/scss/global.scss";
|
|
`
|
|
}
|
|
}
|
|
}
|
|
}
|