-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebpack.prod.js
35 lines (31 loc) · 1.2 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
const HookWebpackPlugin = require('hook-webpack-plugin');
const {merge} = require('webpack-merge');
const common = require('./webpack.common.js');
const copy = require('copy');
const {CleanWebpackPlugin} = require('clean-webpack-plugin');
module.exports = merge(common, {
mode: 'production',
devtool: 'source-map',
plugins: [
new HookWebpackPlugin('done', function copyBundles(compilation, callback) {
const from = ['static/js/jsdoc-template.{js,min.js}', 'static/css/jsdoc-template.{css,min.css}'];
const to = ['docs/demo/js', 'docs/demo/css'];
Promise.all(from.map((src, i) => {
const dest = to[i];
return new Promise((resolve, reject) => {
copy(src, dest, (error, files) => {
if (error) {
return reject(error);
}
return resolve(files);
});
});
})).then(() => callback()).catch(error => callback(error));
}),
new CleanWebpackPlugin({
cleanOnceBeforeBuildPatterns: [
'**/*.hot-update.*'
]
})
]
});