mayisheng
2022-08-10 cfcc3d7f4e28bb6613b598b7b0a3ae8009dbec2a
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/**
 * @Author: Caven
 * @Date: 2018-12-15 00:33:19
 */
 
'use strict'
const path = require('path')
 
const CopyWebpackPlugin = require('copy-webpack-plugin')
const dvgisDist = './node_modules/@dvgis'
 
const resolve = dir => {
    return path.resolve(__dirname, dir)
}
 
module.exports = {
    publicPath: process.env.NODE_ENV === 'production' ? '/vue-dc' : '/',
    productionSourceMap: false,
    configureWebpack: {
        module: {
            unknownContextCritical: false
        },
        performance: {
            hints: false
        }
    },
    chainWebpack: config => {
        config.resolve.extensions
            .add('.js')
            .add('.vue')
            .end()
 
        config.module
            .rule('images')
            .test(/\.(png|jpe?g|gif)(\?.*)?$/)
            .use('url-loader')
            .loader('url-loader')
            .options({
                name: 'images/[name].[ext]',
                limit: 10000
            })
            .end()
 
        config.module
            .rule('fonts')
            .test(/\.(eot|ttf|woff|woff2)(\?.*)?$/)
            .use('url-loader')
            .loader('url-loader')
            .options({
                name: 'fonts/[name].[ext]',
                limit: 10000
            })
            .end()
 
        config.module
            .rule('svg')
            .exclude.add(resolve('src/assets/svg/icons'))
            .end()
 
        config.module
            .rule('icons')
            .test(/\.svg$/)
            .include.add(resolve('src/assets/svg/icons'))
            .end()
            .use('svg-sprite-loader')
            .loader('svg-sprite-loader')
            .options({
                symbolId: 'icon-[name]'
            })
            .end()
 
        config.plugin('copy').use(CopyWebpackPlugin, [
            [
                {
                    from: path.join(__dirname, 'public'),
                    to: path.join(__dirname, 'dist')
                },
                {
                    from: path.join(dvgisDist, 'dc-sdk/dist/resources'),
                    to: path.join(__dirname, 'dist', 'libs/dc-sdk/resources')
                }
            ]
        ])
    }
}