-
Notifications
You must be signed in to change notification settings - Fork 1
/
webpack.config.js
52 lines (48 loc) · 1.2 KB
/
webpack.config.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
/**
* External dependencies
*/
const BrowserSyncPlugin = require('browser-sync-v3-webpack-plugin');
require('dotenv').config();
/**
* WordPress dependencies
*/
const DependencyExtractionWebpackPlugin = require('@wordpress/dependency-extraction-webpack-plugin');
const scriptConfig = require('@wordpress/scripts/config/webpack.config');
module.exports = {
...scriptConfig,
plugins: [
...scriptConfig.plugins.filter(
(plugin) =>
![
'DependencyExtractionWebpackPlugin',
'BrowserSyncPlugin',
].includes(plugin.constructor.name),
),
new DependencyExtractionWebpackPlugin({
injectPolyfill: true,
requestToHandle(request) {
if (request.startsWith('@t2/')) {
return `t2-${request.substring(4)}`;
}
return undefined;
},
requestToExternal(request) {
if (request.startsWith('@t2/')) {
return ['t2', request.substring(4)];
}
return undefined;
},
}),
new BrowserSyncPlugin(
{
files: ['packages/**/*.css', 'packages/**/*.js'],
proxy: process.env.BROWSER_SYNC_PROXY ?? process.env.WP_HOME,
port: process.env.BROWSER_SYNC_PORT ?? 3002,
https: 'true' === process.env.BROWSER_SYNC_HTTPS,
},
{
reload: false,
},
),
],
};