小编Mik*_*yer的帖子

在 webpack 编译结束时更新模块,然后再发出

我正在研究webpack 加载器/插件组合。加载器从 JS 文件中提取静态样式,用这些样式编写一个(虚拟)CSS 文件,然后require在 JS 文件的顶部添加一个指向虚拟 CSS 文件的。该插件提供虚拟文件系统(非常优秀memory-fs)。

到目前为止,我一直为每个 JS 文件编写一个 CSS 文件,但我想为每个编译编写一个文件。这意味着在编译结束时我需要一个聚合步骤。

我目前正在做的是一点点黑客,至少可以说:

  • 在编译之前,编写一个具有特殊格式路径的虚拟 CSS 文件,并将其(以特殊加载程序为前缀)添加到entry数组中。特殊加载器会忽略输入内容,而是返回聚合样式。
  • 在加载器处理每个 JS 文件时聚合样式。
  • 使用need-additional-pass.

问题是由 触发的重新编译need-additional-pass需要两倍的时间(至少在生产中)。

我将尝试一些儿童编译器的废话,但与此同时,我想我会问 SO 看看是否有人有这样的经验。

总之,是否可以在发出之前重新编译单个必需的模块?明确地说,我不想发出 CSS 文件。我想将此提取的 CSS 文件视为需要的文件,以便用户可以决定如何处理它。

补充问题:

  1. 我可以使用子编译器重新编译模块并在父编译器中更新它吗?
  2. 我会以错误的方式解决这个问题吗?

我正在使用最新的 webpack (3.5.5)。

webpack

5
推荐指数
0
解决办法
191
查看次数

标签 统计

webpack ×1