Spaces:
Sleeping
Sleeping
File size: 925 Bytes
7aec436 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// Plugin to modify webpack to interpret all dynamic imports as webpackMode: "eager"
const patchParser = (parser) => {
const originalParseCommentOptions = parser.parseCommentOptions;
parser.parseCommentOptions = function (...args) {
const result = originalParseCommentOptions.call(this, ...args);
result.options.webpackMode = 'eager';
return result;
};
};
const PLUGIN_NAME = 'EagerDynamicImportPlugin';
class EagerDynamicImportPlugin {
apply (compiler) {
compiler.hooks.normalModuleFactory.tap(PLUGIN_NAME, (normalModuleFactory) => {
normalModuleFactory.hooks.parser.for('javascript/auto').tap(PLUGIN_NAME, patchParser);
normalModuleFactory.hooks.parser.for('javascript/dynamic').tap(PLUGIN_NAME, patchParser);
normalModuleFactory.hooks.parser.for('javascript/esm').tap(PLUGIN_NAME, patchParser);
});
}
}
module.exports = EagerDynamicImportPlugin;
|