添加其他插件的webpack插件

时间:2018-05-17 03:53:52

标签: webpack html-webpack-plugin

我尝试创建一个充当插件包装的插件,加载配置,文件等,然后添加更多插件到当前的webpack编译过程

apply函数中,我创建了插件,然后将它们应用于原始编译器,如下所示:

apply(compiler) {
  const plugins = [
    new HtmlWebpackPlugin(options1),
    new HtmlWebpackPlugin(options2),
    ...
  ];

  plugins.forEach((plugin) => {
    plugin.apply(compiler);
  });
});

我的插件没有添加任何挂钩到webpack编译器,但让其他插件添加它们。当容器项目使用webpack 4时它很好用但是在使用不同的webpack版本时我发现了一个错误。

其中一个注入的插件是html-webpack-plugin,它是我的插件的依赖项:

的package.json

"dependencies": {
  "copy-webpack-plugin": "^4.5.1",
  "html-webpack-plugin": "^3.2.0",
  "webpack-bundle-analyzer": "^2.11.3"
}

你可以想象,我注入了这3个插件的实例。

当使用我的插件的项目使用webpack 3时会出现问题,因为在某些时候,html-webpack-plugin内的NodeTemplatePlugin需要html-webpack-plugin/node_modules/webpack下的html-webpack-plugin。据我了解,webpack有自己的webpack 4 compiler。由于原始传递webpack 3来自NodeTemplatePlugin,而webpack 4中预期的compiler.hooks.thisCompilationwebpack 3,因此最新尝试访问peerDependency时出现错误编译器中不存在html-webpack-plugin

有趣的是,在我的包中,json webpack被定义为node_modules(与"peerDependencies": { "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" }, 相同)所以它不应该安装在我的插件的1 2 3 4 5 6A 6B 6C 6D 7A 7B 10 11 12 下面

Select * 
From table 
Order By len(category_name), category_name

知道为什么会发生这种情况,或者如何从另一个插件注入插件的替代品?

如果您需要更多上下文/代码,可以在此处查看:
https://github.com/danikaze/generate-examples-index-webpack-plugin/blob/dev/src/ExamplesGenerator.js#L61

0 个答案:

没有答案