-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebpack.prod.js
100 lines (99 loc) · 2.75 KB
/
webpack.prod.js
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
const { loaders, plugins, baseWebpackConfig } = require('./webpack.common')
const { merge } = require('webpack-merge')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
module.exports = env => {
return merge(baseWebpackConfig, {
mode: 'production',
devtool: 'none',
output: {
filename: 'js/[name].js?[hash:8]',
chunkFilename: 'js/[name].js?[contenthash]'
},
module: {
rules: [
{
test: /\.sass$/,
use: [
{
loader: MiniCssExtractPlugin.loader,
options: {
hmr: false,
reloadAll: true
}
},
loaders.cssLoader,
loaders.postCssLoader,
loaders.resolveUrlLoader,
loaders.groupCssMediaQueriesLoader,
loaders.sassLoader
]
},
{
test: /\.s?css$/,
use: [
{
loader: MiniCssExtractPlugin.loader,
options: {
hmr: false,
reloadAll: true
}
},
loaders.cssLoader,
loaders.postCssLoader,
loaders.resolveUrlLoader,
loaders.groupCssMediaQueriesLoader,
loaders.scssLoader
]
}
]
},
plugins: [
plugins.CleanWebpackPlugin(),
plugins.VueLoaderPlugin(),
plugins.DefinePlugin(env),
plugins.FriendlyErrorsWebpackPlugin(),
plugins.WebpackProvidePlugin(),
new MiniCssExtractPlugin({
filename: 'css/[name].css?[contenthash]',
chunkFilename: 'css/[name].css?[contenthash]'
}),
plugins.SvgStorePlugin(),
new CopyWebpackPlugin([
// {
// from: './node_modules/animate.css/animate.min.css',
// to: './vendors/',
// toType: 'dir'
// },
// {
// from: './node_modules/vue/dist/vue.runtime.min.js',
// to: './vendors/',
// toType: 'dir'
// },
// {
// from: './node_modules/vue-router/dist/vue-router.min.js',
// to: './vendors/',
// toType: 'dir'
// },
// {
// from: './node_modules/vuex/dist/vuex.min.js',
// to: './vendors/',
// toType: 'dir'
// },
// {
// from: './public/js/libs/jquery.min.js',
// to: './js/libs/jquery.min.js',
// toType: 'file',
// },
{
from: './src/db',
to: './db'
}
]),
...plugins.MultiHtmlWebpackPlugins(),
plugins.FaviconsWebpackPlugin(),
...plugins.MultiHtmlCriticalWebpackPlugins(),
plugins.ScriptExtHtmlWebpackPlugin()
]
})
}