Mi apelación es que algunas dependencias en mi proyecto han sido externas y estas dependencias son compartidas por varias entradas. Quiero contar las dependencias externas utilizadas por cada entrada.
Con webpack4:
function _getAllDeps(module) { const moduleRecord = {}; const result = {}; const _find = (module) => { if (!module || moduleRecord[module.request]) { return false; } moduleRecord[module.request] = true; if (module.dependencies && Array.isArray(module.dependencies)) { module.dependencies.forEach((dep) => { _find(dep.module); // all dependencies are there, and I can pick the 'externals' by `module.external` if (!(dep.module && dep.module.external)) { return false; } const { request } = dep.module; result[request] = true; }); } }; _find(module); return Object.keys(result); } compiler.hooks.emit.tapAsync('xxxxx', (compilation, done) => { compilation.chunks.forEach((chunk) => { const actualDeps = _getAllDeps(chunk.entryModule) // Now, I have get all the dependences used by the chunk // And I can compare with dependencies in package.json // Finally, I will get external dependencies used by each entry }) })Pero en webpack5:
compiler.hooks.emit.tapAsync('DepsJsonWebpackPlugin', (compilation, done) => { compilation.chunks.forEach((chunk) => { console.log(chunk.name); for (const module of compilation.chunkGraph.getChunkModulesIterable(chunk)) { console.log(module.request); } }); done(); }); Se perdieron todas las dependencias especificadas en externals .
Entonces, ¿cómo puedo obtener todas las dependencias de módulos de cada entrada en webpack5, incluidas las que son externas?