webpack在哪里缓存其工作以进行重建?

时间:2019-06-27 13:59:44

标签: webpack babeljs

此页面显示了许多Webpack的编译模式,其中有些 rebuild build 快。

enter image description here

我正在尝试测量各种构建工具的速度,但是我无法确定是构建还是重建。我的意思是..我必须清除哪些文件以确保正在重建?只是目标目录?还是在某个地方有另一个缓存?

例如,这里的第二个构建是第二个构建还是重新构建?

node_modules/.bin/webpack --output-path ~/target
rm -r target
node_modules/.bin/webpack --output-path ~/target

如果 rebuilds ,我必须清除些什么才能使其再次 build

,这里的第二个是 build 还是 rebuild

node_modules/.bin/webpack --output-path ~/target
node_modules/.bin/webpack --output-path ~/target

如果这是另一个 build ,我该怎么做 rebuild

(webpack 4)

1 个答案:

答案 0 :(得分:0)

TL; DR:“重建”仅在watch modedevelopment mode期间发生。

Webpack

Webpack似乎不缓存到文件,而仅缓存在内存中。

  

缓存

     

缓存生成的Webpack模块和块以提高构建速度。在监视模式下,默认情况下将自动启用缓存,并且webpack设置为模式开发。

Webpack docs | cache options

由于默认情况下仅在开发和监视模式下启用它,因此每个命令都应重新构建。您可以确定关闭cache这个选项,也可以专门针对production

node_modules/.bin/webpack --output-path ~/target --mode=production

在检查了Webpack 5中的新更改之后,我立即遇到了这个问题,其中之一是对allow caching to a local file的更改。

  

cache:对象已删除:无法再设置为内存缓存对象

     

cache.type已添加:现在可以在“内存”和“文件系统”之间进行选择

我认为这意味着当前在webpack 4中不可能在文件系统中具有缓存。


编辑:您没有在问题中提及它,但我刚才看到您在赏金理由中提到了babel

通天塔

如果您使用babel-loader,默认情况下会有一个cacheDirectory的{​​{1}}选项。但是,如果启用,则默认目录位于false中。

以下是文档中的摘要,重点是我的:

  

node_modules/.cache/babel-loader:默认为false。设置后,给定目录将用于缓存加载程序的结果。 未来的Webpack构建将尝试从缓存中读取数据,以避免每次运行时都可能运行可能耗资巨大的Babel重新编译过程。如果在选项cacheDirectory中将该值设置为true,则加载程序将使用({cacheDirectory: true})中的默认缓存目录,如果在node_modules/.cache/babel-loader中找不到node_modules文件夹,则加载器将使用默认的操作系统临时文件目录。任何根目录。

babel-loader options

相关问题