Webpack手表()有多个入口点 – 发射未修改的文件包?

在我的webpack.config.js中,我有3个单独的入口点,一个用于JS包,一个用于主SCSS包,另一个用于单独的SCSS包,与主SCSS包没有任何关系。

当我使用webpack.watch()API时,出于某种原因编辑JS源文件,不仅导致JS包被重新编译,而且导致2个SCSS包。 为什么是这样的,我怎样才能停止这种行为,并确保只有编辑的入口点重新编译?

这是一个问题的原因是我使用浏览器同步,对于CSS捆绑重编译即时注入CSS而不是重新加载,但在HTML / JS编辑其重新加载。 但是,如果我编辑SCSS,它也重新编译JS / HTML浏览器同步触发一个重新加载,而不是一个CSS注入

在这种情况下,你需要一个让webpack检测每个不同入口点有多less变化的文件。

为此,您可以使用commonsChunkPlugin提供的清单文件:

例如,如果您有以下入口点:

entry: { app: 'main.js', // main entry point vendor: ['jquery', 'react'] //Third libraries } 

你可以使用插件CommonsChunkPlugin:

 new wepack.optimize.CommonsChunkPlugin({ name: ['vendor', 'manifest'] }) 

这个configuration生成一个清单文件作为另一个输出。 在这种情况下,如果您在“app ”入口点进行更改,webpack将仅重新编译main.js输出包(根据'output'configuration中的'filename'格式),因为供应商包已经是相同。

你可以试着用你的具体的入口点。