【问题标题】:Webpack: Does the order of plugins matter?Webpack:插件的顺序重要吗?
【发布时间】:2017-05-19 03:42:20
【问题描述】:

我查看了文档 herehere,搜索了 StackOverflow 和 GitHub 讨论,但仍然找不到此信息。是否有任何资源或有人知道插件的顺序在 Webpack 中是否重要?以及排序是如何工作的?

【问题讨论】:

    标签: webpack


    【解决方案1】:

    是的,顺序很重要:插件绑定到编译器并按照指定的顺序应用。您可以查看 webpack/tapable 以更清楚地了解其工作原理。

    不过,通常情况下,您不必在绑定编译器和编译插件时考虑排序,因为插件作者公开了 specific events,这有助于您推断何时调用您的处理程序。

    【讨论】:

    • 这可能在文档中更清楚:/。一年后,我仍在寻找同样的东西。
    • 该链接如何显示如何设置节点项目的构建顺序?
    • 有很多问题没有答案。 webpack.config.js plugins 数组上的顺序如何影响构建过程?插件是在加载器之后还是之前执行的? webpack 插件可以像 gulp 一样串联或并联吗?我可以看到tapable 包提供了其中的一些功能。但是如果没有更清晰的解释,很难说整个插件系统最终是如何工作的。
    • 所以它们是从上到下或从左到右应用(取决于格式)?
    【解决方案2】:

    嗯,答案是

    ,因为在捆绑期间,webpack 会发出几个事件,这些事件会在编译的不同阶段触发(您可以阅读更多关于它的信息here)。

    每个插件都必须(由插件的作者)与这些事件之一挂钩。

    话虽如此,让我们考虑两个插件,AB

    即使在配置文件中A 列在B 之前,A 也将在B 之前执行,只有当它挂钩到在B 的挂钩事件之前触发的事件时。

    可以,因为万一AB挂钩到同一个事件,执行顺序应该和配置文件中的顺序一致。

    【讨论】:

      【解决方案3】:

      webpack 不是任务运行器。 这些插件是任务,不是“webpack 风格”并且不受支持。你可以在那里报告这个问题,但是在 webpack 方面没有什么可做的(我不太在乎)。 -sokra

      ref

      【讨论】:

      • 这如何回答这个问题?
      • @zr0gravity7 Webpack 的创建者说插件的顺序没有得到尊重,并在链接中关闭了请求此功能的问题
      猜你喜欢
      • 2021-03-26
      • 1970-01-01
      • 2014-08-06
      • 2018-01-09
      • 2017-11-18
      • 2012-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多