捆绑反应应用程序时webpack如何处理import语句?

时间:2017-09-27 15:25:37

标签: reactjs webpack minify webpack-2

我的问题很少主观。

  

所以场景就像 - 我有n个反应组件。每   组件有各自的css文件。内部几乎没有常见的css文件   assets/css/个文件。如果需要,我只是将常见的css文件导入到react组件css文件中。

例如: - 有一个assets/css/color.css文件很常见,很少有组件使用。我正在将assets/css/color.css导入到需要它的css文件中。这样我将assets/css/color.css多次导入到不同的css文件中。

我的问题是 - 当webpack开始捆绑代码时,它如何处理同一个css文件的多次导入?在许多地方导入相同的css文件会导致捆绑文件中出现冗余吗?

1 个答案:

答案 0 :(得分:0)

How does webpack handle multiple files importing the same module React给出的答案暗示webpack只会将每个库捆绑一次。

这对JS模块来说是正确的。每个模块只嵌入一次,webpack在适当的时候重用实例。

但是如果你在该文件中包含另一个文件,那么它取决于css webpack模块如何管理它。

对于原始CSS,我认为该文件只会包含一次,因为所有文件都由webpack直接管理。

但是如果你使用sass loader并从你的第一个sass文件中导入一些其他sass文件:

1.js文件 - >包括a.sass文件 - > @import another.sass文件 2.js文件 - >包括b.sass文件 - > @import another.sass文件

然后,如果another.sass文件生成一些类定义,您将看到这些类在输出中多次出现。这是因为webpack不知道重复,因为它是在sass loader级别处理的。