我有两个项目:应用程序和图书馆。应用程序依赖于图书馆。我同时使用yalc,以便在更新Library时,它将更新App/node-模块/Library。
不幸的是,Webpack积极地缓存node_modules,而且它不会对App/node-模块/库进行更改。重新加载应用程序没有帮助,甚至没有杀死手表并重新启动它,因为它将缓存保存在文件系统中。我在某个地方读到,对package-lock.json或yarn.lock的更改会使它们失效,但是yalc有自己的单独锁文件。
什么起作用:
false.
cache设置为[].
snapshot.managedPaths,删除Webpack缓存并重新启动.不起作用的是:
cache.buildDependencies添加yalc.lock。(它会导致重建,但仍然使用缓存的node_modules.)。
是否有任何方法配置Webpack,以便在对node_modules进行更改时使其yalc.lock缓存失效?
发布于 2022-05-23 06:06:29
在这种情况下,只要对库进行更改并使用yalc发布它,就需要在package.json中更改它的package.json。
如果您在每个yalc publish --push或yalc push上保持库的版本相同,那么无论您在库中更改了什么,或者使用完全不同的功能进行更新,直到您重新启动服务器,它才会得到反映。它将继续使用那些缓存内存。
Webpack在它的package.json中寻找每个依赖项的版本,如果它找到相同的版本,它将使用缓存的资产来构建,不管你在里面改变了什么。您将在导入的依赖项中找到更新的内容,但更改不会出现。
您必须更改包版本,以便Webpack能够跟踪更改并有效地使用缓存的资产。包版本的更改将导致在不重新启动服务器的情况下使用更新的代码的依赖关系。
--这是Webpack提高构建速度以尽可能快地为应用程序服务的方法之一--。如果您在应用程序中使用任何带有YALC、every或NPM的本地包或库,请确保在每个发布的上更新其版本。
与您的库一起更改版本,而发布库是迄今为止唯一复杂的方法。
为了更好地理解,您可以检查Webpack是如何使用依赖关系图构建模块的。
https://stackoverflow.com/questions/72243290
复制相似问题