123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- const Components = require('unplugin-vue-components/webpack');
- const AutoImport = require('unplugin-auto-import/webpack');
- const { ElementPlusResolver } = require('unplugin-vue-components/resolvers');
- const CompressionPlugin = require('compression-webpack-plugin');
- module.exports = {
- productionSourceMap: false,
- publicPath: './',
- chainWebpack: config => {
- if (process.env.NODE_ENV === 'production') {
- config.plugin('compressionPlugin').use(
- new CompressionPlugin({
- test: /\.js$|\.css|\.less/, // 匹配文件名
- threshold: 102400, // 对超过10k的数据压缩
- deleteOriginalAssets: false, // 不删除源文件
- })
- );
- // 移除 prefetch 插件
- config.plugins.delete('prefetch');
- config.module.rules = [
- {
- test: /\.s[ac]ss$/i,
- use: [
- // 将 Sass 编译成 CSS
- {
- loader: 'sass-loader',
- options: {
- sassOptions: {
- strictMath: true,
- noIeCompat: true,
- },
- },
- },
- ],
- },
- ];
- }
- },
- configureWebpack: {
- plugins: [
- AutoImport({
- resolvers: [ElementPlusResolver()],
- }),
- Components({
- resolvers: [ElementPlusResolver()],
- }),
- ],
- },
- };
|