/
githubmirror
/
webpack
Обзор
Документация
Войти
/
githubmirror
/
webpack
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
test/statsCases/split-chunks-dedup/webpack.config.js
88 строк
2 KB
Alexander Akait
chore: resolve "use strict" TODO (#19705)
16 июл 2025, 17:29
Не верифицирован
16 июл 2025, 17:29
d8690f3
Код
Авторство
О чём код?
"use strict"; /** @typedef {import("../../../").Module} Module */ const webpack = require("../../../"); const { WEBPACK_MODULE_TYPE_PROVIDE } = require("../../../lib/ModuleTypeConstants"); const { ModuleFederationPlugin } = webpack.container; const chunkIdChunkNameMap = new Map(); const usedSharedModuleNames = new Set(); /** @type {import("../../../").Configuration} */ module.exports = { entry: { main: "./" }, mode: "production", optimization: { splitChunks: { cacheGroups: { defaultVendors: false, main: { name: "main", enforce: true, minChunks: 3 } } } }, output: { chunkFilename(pathData) { const { chunk } = pathData; if (chunk && "groupsIterable" in chunk) { for (const group of chunk.groupsIterable) { if (group.origins) { for (const origin of group.origins) { if ( /** @type {Module} */ (origin.module).type === WEBPACK_MODULE_TYPE_PROVIDE && chunk.id ) { if (chunkIdChunkNameMap.has(chunk.id)) { return `${chunkIdChunkNameMap.get(chunk.id)}.js`; } // @ts-expect-error const sharedModuleName = origin.module._name; const chunkName = `${sharedModuleName}-${chunk.id}--shared`; usedSharedModuleNames.add(sharedModuleName); chunkIdChunkNameMap.set(chunk.id, chunkName); return `${chunkName}.js`; } } } } } return "[id]--chunk.js"; } }, plugins: [ new ModuleFederationPlugin({ shared: { table: { requiredVersion: "=1.0.0" }, cell: { requiredVersion: "=1.0.0" }, row: { requiredVersion: "=1.0.0" }, templater: { requiredVersion: "=1.0.0" } } }), new webpack.optimize.MergeDuplicateChunksPlugin({ stage: 10 }) ], stats: { assets: true } };