const isWin = /^win/.test(process.platform) const normalizePath = path => (isWin ? path.replace(/\\/g, '/') : path) function optimizeChunk(chunk) { if (!chunk) { return } const subPackages = Object.keys(process.UNI_SUBPACKAGES).map(root => `${root}/app-sub-service`) const chunks = Array.from(chunk.groupsIterable)[0].chunks Array.from(chunk.groupsIterable)[0].chunks = chunks.filter(chunk => !subPackages.includes(normalizePath(chunk.id))) } class SubPackagesPlugin { apply(compiler) { compiler.hooks.thisCompilation.tap('SubPackagesPlugin', compilation => { compilation.hooks.afterOptimizeChunkIds.tap('SubPackagesPlugin', chunks => { optimizeChunk(chunks.find(chunk => chunk.id === 'app-service')) }) }) } } module.exports = SubPackagesPlugin