Webpack重新编译未更改的文件,从而减慢构build时间

相关的webpack / webpack的问题。

根据我的经验,在实际项目中使用webpack会减慢一定数量的组件和/或依赖项。 我有一个testing存储库 ,试图用下面的应用程序来演示这个:

  • 入口点是A.js ,它需要B.jsC.js
  • B.js很小,没有太多的依赖关系。
  • C.js是单一的,有成千上万的需求。

我的期望是,当在testing项目中使用webpack-dev-server时,每当我保存B.js ,webpack应该认识到C.js并没有触及它的依赖关系。 它应该快速地(<10ms)编译B.js ,replace它在caching中,并从初始编译中使用A.js的caching版本输出编译后的A.js

但是,每次保存B.js时,webpack都会编译3002隐藏模块,导致编译时间为960ms 。 这本身并不坏,但如果你添加一些像react-hotbabel这样的装载机, react-hot失去控制。

我有一个解决scheme:在同一个testing项目有一个dll分支。 在那个分支上,你可以运行webpack --config webpack.dll.config.js来生成B.jsC.js两个DLL, B.js DLL在编译A.js时候会被A.js 。 之后,当使用webpack-dev-server ,每当你保存B.js ,它的DLL就会被重新编译, A.js会注意到它的一个DLL已经更新了,它只会把C.js的旧DLL和B.js新DLL,并将它们合并成一个快乐的快乐包。

我可以进一步在这个分支上做目录读取或依赖图走,为每个组件生成一个DLL,这个方法可能被应用到每个webpack项目。 这在理论上应该尽可能快地编译。 但在这一点上,在我看来,我将重新实现(糟糕的)webpack中的caching层应该做什么,所以这里发生了什么?