forked from VisualComposer/builder
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebpack.config.production.babel.js
122 lines (118 loc) · 3.09 KB
/
webpack.config.production.babel.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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import MiniCssExtractPlugin from 'mini-css-extract-plugin'
import webpack from 'webpack'
import TerserPlugin from 'terser-webpack-plugin'
import VirtualModulesPlugin from 'webpack-virtual-modules'
import CssMinimizerPlugin from 'css-minimizer-webpack-plugin'
import Collector from './tools/webpack-collector-5x'
import config from './webpack.config.babel'
import VcWebpackCustomAliasPlugin from 'vc-webpack-vendors/webpack.plugin.customAlias'
import CompressionWebpackPlugin from 'compression-webpack-plugin'
const virtualModules = new VirtualModulesPlugin({
'node_modules/jquery/dist/jquery.js': 'module.exports = window.jQuery;'
})
delete config.devtool
export default Object.assign({}, config, {
mode: 'production',
optimization: {
minimize: true,
runtimeChunk: 'single',
mangleExports: false,
chunkIds: 'named',
moduleIds: 'named',
splitChunks: {
cacheGroups: {
default: false,
vendor: {
chunks: 'initial',
name: 'vendor',
test: 'vendor',
enforce: true
}
}
},
minimizer: [
new TerserPlugin({
terserOptions: {
safari10: true
}
}),
new CssMinimizerPlugin()
]
},
plugins: [
new Collector({
wp: {
modules: [
'layout',
'wordpressWorkspace',
'insights',
'elementLimit'
],
services: [
'dataManager',
'utils',
'roleManager',
'document',
'wordpress-post-data',
'dataProcessor',
'cook',
'sharedAssetsLibrary',
'elementAssetsLibrary',
'actionsManager',
'rulesManager',
'modernAssetsStorage',
'stylesManager',
'wpMyTemplates',
'hubElements',
'elementAccessPoint',
'hubAddons',
'renderProcessor',
'api'
]
},
hub: {
services: [
'dataManager',
'utils',
'roleManager',
'document',
'wordpress-post-data',
'dataProcessor',
'cook',
'sharedAssetsLibrary',
'elementAssetsLibrary',
'actionsManager',
'rulesManager',
'modernAssetsStorage',
'stylesManager',
'wpMyTemplates',
'hubElements',
'elementAccessPoint',
'hubAddons',
'renderProcessor',
'api'
]
}
}),
new MiniCssExtractPlugin({
filename: '[name].bundle.css'
}),
virtualModules,
new CompressionWebpackPlugin(),
new VcWebpackCustomAliasPlugin(false, false),
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify('production'),
DEBUG: JSON.stringify('false'),
platform: JSON.stringify('unix'),
NODE_DEBUG: JSON.stringify('false')
},
'process.platform': JSON.stringify('unix'),
'process.browser': JSON.stringify('chrome'),
'fs.promises.readFile': JSON.stringify(false)
}),
new webpack.ProvidePlugin({
Buffer: ['buffer', 'Buffer']
})
]
})