【发布时间】:2017-05-19 03:42:20
【问题描述】:
我查看了文档 here 和 here,搜索了 StackOverflow 和 GitHub 讨论,但仍然找不到此信息。是否有任何资源或有人知道插件的顺序在 Webpack 中是否重要?以及排序是如何工作的?
【问题讨论】:
标签: webpack
我查看了文档 here 和 here,搜索了 StackOverflow 和 GitHub 讨论,但仍然找不到此信息。是否有任何资源或有人知道插件的顺序在 Webpack 中是否重要?以及排序是如何工作的?
【问题讨论】:
标签: webpack
是的,顺序很重要:插件绑定到编译器并按照指定的顺序应用。您可以查看 webpack/tapable 以更清楚地了解其工作原理。
不过,通常情况下,您不必在绑定编译器和编译插件时考虑排序,因为插件作者公开了 specific events,这有助于您推断何时调用您的处理程序。
【讨论】:
webpack.config.js plugins 数组上的顺序如何影响构建过程?插件是在加载器之后还是之前执行的? webpack 插件可以像 gulp 一样串联或并联吗?我可以看到tapable 包提供了其中的一些功能。但是如果没有更清晰的解释,很难说整个插件系统最终是如何工作的。
嗯,答案是是和否。
否,因为在捆绑期间,webpack 会发出几个事件,这些事件会在编译的不同阶段触发(您可以阅读更多关于它的信息here)。
每个插件都必须(由插件的作者)与这些事件之一挂钩。
话虽如此,让我们考虑两个插件,A 和 B。
即使在配置文件中A 列在B 之前,A 也将在B 之前执行,只有当它挂钩到在B 的挂钩事件之前触发的事件时。
可以,因为万一A和B挂钩到同一个事件,执行顺序应该和配置文件中的顺序一致。
【讨论】:
webpack 不是任务运行器。 这些插件是任务,不是“webpack 风格”并且不受支持。你可以在那里报告这个问题,但是在 webpack 方面没有什么可做的(我不太在乎)。 -sokra
【讨论】: