相关的webpack/webpack问题。
根据我的经验,在堆积了一定数量的组件和/或依赖项之后,在实际项目中使用webpack会变慢。我a test repository试图通过以下应用来证明这一点:
A.js
,需要B.js
和C.js
。B.js
很小,并且没有很多依赖。C.js
是单一的,有数千个要求。我的期望是,在测试项目中使用webpack-dev-server
时,每当我保存B.js
时,webpack都应该识别C.js
并且没有触及任何依赖项。它应该快速编译B.js
(在< 10ms内),在缓存中替换它,并使用初始编译中的A.js
的缓存版本输出编译的C.js
。
但是,每次保存3002
时,webpack都会编译B.js
隐藏的模块,导致编译时间为960ms
。这本身并不坏,但如果你添加一些像react-hot
和babel
这样的加载器,螺旋就会失控。
我确实有一个解决方案:在同一个测试项目中有一个dll
分支。在该分支上,您可以运行webpack --config webpack.dll.config.js
以生成来自B.js
和C.js
的两个DLL,然后在编译A.js
时可以利用这些DLL。之后,当使用webpack-dev-server
时,无论何时保存B.js
,其DLL都将被重新编译,A.js
会注意到其中一个DLL已更新,它只会获取旧的DLL C.js
和B.js
的新DLL并将它们组合成一个快速的快乐包。
我可以在该分支上继续进行并执行目录读取或依赖关系图遍历以为每个组件生成DLL,这种方法可能会应用于每个webpack项目。那理论上应该按照我的意愿进行编译。但在那一点上,在我看来,我将重新实现(很差)webpack中的缓存层应该自己做什么,那么这里发生了什么?