webpack/test/configCases/deep-scope-analysis/remove-export/webpack.config.js

36 lines
944 B
JavaScript
Raw Normal View History

/** @typedef {import("../../../../lib/Compilation")} Compilation */
module.exports = {
optimization: {
usedExports: true,
concatenateModules: false
},
plugins: [
2020-03-29 06:10:15 +08:00
function () {
this.hooks.compilation.tap("Test", compilation => {
compilation.hooks.dependencyReferencedExports.tap(
"Test",
(referencedExports, dep) => {
const module = compilation.moduleGraph.getParentModule(dep);
if (!module.identifier().endsWith("module.js"))
return referencedExports;
const refModule = compilation.moduleGraph.getModule(dep);
if (
refModule &&
refModule.identifier().endsWith("reference.js") &&
referencedExports.some(
names => names.length === 1 && names[0] === "unused"
)
) {
return referencedExports.filter(
names => names.length !== 1 || names[0] !== "unused"
);
}
return referencedExports;
}
);
});
}
]
};