-
Notifications
You must be signed in to change notification settings - Fork 57
Expand file tree
/
Copy pathwebpack.config.js
More file actions
27 lines (24 loc) · 1.02 KB
/
webpack.config.js
File metadata and controls
27 lines (24 loc) · 1.02 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
const glob = require('glob')
const path = require('path')
const { PurgeCSSPlugin } = require('purgecss-webpack-plugin')
const [server, client] = require('../webpack.config')
function applyAliases(environments) {
return environments.map((environment) => (...args) => {
const config = environment(...args)
config.resolve.alias._ = path.join(process.cwd(), '..', 'node_modules');
config.resolve.alias["terser"] = path.join(process.cwd(), '..', 'node_modules', '@swc/core');
config.resolve.alias.webpack = path.join(process.cwd(), '..', 'node_modules', 'webpack');
if (config.mode === 'production' && config.target === 'web') {
config.plugins.push(
new PurgeCSSPlugin({
paths: glob.sync(`src/**/*`, { nodir: true }),
content: ['./**/*.njs'],
safelist: ['script', 'body', 'html', 'style'],
defaultExtractor: (content) => content.match(/[^<>"'`\s]*[^<>"'`\s:]/g) || [],
}),
)
}
return config
})
}
module.exports = applyAliases([server, client])