build: improve webpack config (#3463)

This commit is contained in:
Alex Yang
2023-07-29 23:34:52 -07:00
committed by GitHub
parent 05865d51c6
commit cc7de52caf
5 changed files with 33 additions and 9 deletions

View File

@@ -8,9 +8,9 @@ export const productionCacheGroups = {
test: /[\\/]node_modules[\\/]/,
name(module: any) {
// https://hackernoon.com/the-100-correct-way-to-split-your-chunks-with-webpack-f8a9df5b7758
const name =
module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)?.[1] ??
'unknown';
const name = module.context.match(
/[\\/]node_modules[\\/](.*?)([\\/]|$)/
)?.[1];
return `npm-async-${name}`;
},
priority: Number.MAX_SAFE_INTEGER,

View File

@@ -256,9 +256,9 @@ export const createConfiguration: (
new HTMLPlugin({
template: join(rootPath, '.webpack', 'template.html'),
inject: 'body',
scriptLoading: 'defer',
scriptLoading: 'module',
minify: false,
chunks: ['index', 'plugin'],
chunks: ['index', 'plugin', 'polyfill-ses'],
filename: 'index.html',
}),
new VanillaExtractPlugin(),

View File

@@ -14,15 +14,20 @@ export default async function (cli_env: any, _: any) {
const config = createConfiguration(flags, runtimeConfig);
return merge(config, {
entry: {
index: {
'polyfill-ses': {
asyncChunks: false,
import: resolve(rootPath, 'src/index.tsx'),
import: resolve(rootPath, 'src/polyfill/ses.ts'),
},
plugin: {
dependOn: ['index'],
asyncChunks: true,
dependOn: ['polyfill-ses'],
import: resolve(rootPath, 'src/bootstrap/register-plugins.ts'),
},
index: {
asyncChunks: false,
dependOn: ['polyfill-ses', 'plugin'],
import: resolve(rootPath, 'src/index.tsx'),
},
},
});
}