-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebpack.config.js
More file actions
47 lines (46 loc) · 1.22 KB
/
webpack.config.js
File metadata and controls
47 lines (46 loc) · 1.22 KB
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
const path = require('path');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const defaultConfig = require('@wordpress/scripts/config/webpack.config');
const CopyWebpackPlugin = require('copy-webpack-plugin');
module.exports = {
...defaultConfig,
entry: {
'qf-editor': './src/editor-app.js',
'qf-block': './src/block-edit.js',
},
output: {
...defaultConfig.output,
path: path.resolve(__dirname, 'assets/js'),
filename: '[name].bundle.js',
},
externals: {
react: 'React',
'react-dom': 'ReactDOM',
},
plugins: [
...(defaultConfig.plugins || []).map((plugin) => {
if (plugin.constructor.name !== 'CleanWebpackPlugin') {
return plugin;
}
// Match @wordpress/scripts defaults, but exclude qf-widget.js from
// cleanAfterEveryBuildPatterns. Copied assets are not always listed in
// stats.assets, so del() would otherwise remove them after each build.
return new CleanWebpackPlugin({
cleanAfterEveryBuildPatterns: [
'!fonts/**',
'!images/**',
'!qf-widget.js',
],
cleanStaleWebpackAssets: false,
});
}),
new CopyWebpackPlugin({
patterns: [
{
from: path.resolve(__dirname, 'src/qf-widget.js'),
to: 'qf-widget.js',
},
],
}),
],
};