Add support for webpack 5 (fixes #124)

This commit is contained in:
Alexandru Dima 2020-12-24 15:11:04 +01:00
parent 271fd7dcab
commit 6222e3fdb9
No known key found for this signature in database
GPG key ID: 6E58D7B045760DA0
5 changed files with 723 additions and 3182 deletions

View file

@ -108,7 +108,7 @@ interface IInternalMonacoEditorWebpackPluginOpts {
publicPath: string;
}
class MonacoEditorWebpackPlugin implements webpack.Plugin {
class MonacoEditorWebpackPlugin implements webpack.WebpackPluginInstance {
private readonly options: IInternalMonacoEditorWebpackPluginOpts;
@ -161,12 +161,19 @@ function addCompilerRules(compiler: webpack.Compiler, rules: webpack.RuleSetRule
}
}
function addCompilerPlugins(compiler: webpack.Compiler, plugins: webpack.Plugin[]) {
function addCompilerPlugins(compiler: webpack.Compiler, plugins: webpack.WebpackPluginInstance[]) {
plugins.forEach((plugin) => plugin.apply(compiler));
}
function getCompilationPublicPath(compiler: webpack.Compiler): string {
return compiler.options.output && compiler.options.output.publicPath || '';
if (compiler.options.output && compiler.options.output.publicPath) {
if (typeof compiler.options.output.publicPath === 'string') {
return compiler.options.output.publicPath;
} else {
console.warn(`Cannot handle options.publicPath (expected a string)`);
}
}
return '';
}
function createLoaderRules(languages: IFeatureDefinition[], features: IFeatureDefinition[], workers: ILabeledWorkerDefinition[], filename: string, pluginPublicPath: string, compilationPublicPath: string): webpack.RuleSetRule[] {