UNPKG

@module-federation/enhanced

Version:

This package provides enhanced features for module federation.

44 lines (42 loc) 2.01 kB
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); const require_runtime = require('../../../_virtual/_rolldown/runtime.js'); const require_lib_sharing_SharePlugin = require('../SharePlugin.js'); const require_lib_sharing_tree_shaking_SharedUsedExportsOptimizerPlugin = require('./SharedUsedExportsOptimizerPlugin.js'); const require_lib_sharing_tree_shaking_IndependentSharedPlugin = require('./IndependentSharedPlugin.js'); //#region src/lib/sharing/tree-shaking/TreeShakingSharedPlugin.ts var TreeShakingSharedPlugin = class { constructor(options) { this.name = "TreeShakingSharedPlugin"; const { mfConfig, secondary } = options; this.mfConfig = mfConfig; this.outputDir = mfConfig.treeShakingDir || "independent-packages"; this.secondary = Boolean(secondary); } apply(compiler) { const { mfConfig, outputDir, secondary } = this; const { name, shared, library } = mfConfig; if (!name) throw new Error("name is required"); if (!shared) return; const sharedOptions = require_lib_sharing_SharePlugin.normalizeSharedOptions(shared); if (!sharedOptions.length) return; if (sharedOptions.some(([_, config]) => config.treeShaking && config.import !== false)) { if (!secondary) new require_lib_sharing_tree_shaking_SharedUsedExportsOptimizerPlugin.default(sharedOptions, mfConfig.injectTreeShakingUsedExports, void 0, mfConfig.manifest).apply(compiler); this._independentSharePlugin = new require_lib_sharing_tree_shaking_IndependentSharedPlugin.default({ name, shared, outputDir, plugins: mfConfig.treeShakingSharedPlugins?.map((p) => { return new (require(p))(); }) || [], treeShakingSharedExcludePlugins: mfConfig.treeShakingSharedExcludePlugins, treeShaking: secondary, library, manifest: mfConfig.manifest }); this._independentSharePlugin.apply(compiler); } } }; //#endregion exports.default = TreeShakingSharedPlugin; //# sourceMappingURL=TreeShakingSharedPlugin.js.map