Spaces:
Sleeping
Sleeping
// 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; | |