shuishen
2022-04-29 443c649303cc275f4ff07b3d2f5e589047f8054d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
const path = require('path')
const CopywebpackPlugin = require('copy-webpack-plugin')
const dvgisDist = './node_modules/@dvgis'
 
// 减少chunk-vendors.js文件大小
const CompressionPlugin = require('compression-webpack-plugin')
 
module.exports = {
    publicPath: '/',
    lintOnSave: false,
    // 其他配置
    chainWebpack: (config) => {
        config.plugin('copy').use(CopywebpackPlugin, [
            [
                {
                    from: path.join(dvgisDist, 'dc-sdk/dist/resources'),
                    to: 'libs/dc-sdk/resources'
                },
                {
                    from: './public/img',
                    to: 'img'
                },
                {
                    from: './public/examples',
                    to: 'examples'
                },
 
                {
                    from: './public/fz',
                    to: 'fz'
                },
                {
                    from: './public/favicon.ico',
                    to: 'favicon.ico'
                }
                // {
                //     from: './public/mx',
                //     to: 'mx'
                // },
                // {
                //     from: './public/wp',
                //     to: 'wp'
                // },
                // {
                //     from: './public/qx',
                //     to: 'qx'
                // }
            ]
        ])
    },
    // 减少chunk-vendors.js文件大小
    //  报错 TypeError: Cannot read property 'tapPromise' of undefined
    // 解决  ,把compression-webpack-plugin包退回成 compression-webpack-plugin@5.0.1  即可
    // 文件由8M 减成2.5M
    productionSourceMap: false, // 代码压缩加密
    configureWebpack: {
        // webpack plugins
        plugins: [
            // 提供带 Content-Encoding 编码的压缩版的资源
            new CompressionPlugin({
                algorithm: 'gzip',
                test: /\.js$|\.html$|\.css/, // 匹配文件名
                // test: /\.(js|css)$/,
                threshold: 10240, // 对超过10k的数据压缩
                deleteOriginalAssets: false, // 不删除源文件
                minRatio: 0.8 // 压缩比
            })
        ]
    }
}