webpack5 缓存对于自定义 loader 的影响是什么?

webpack5 缓存对于自定义 loader 的影响是什么?

webpack5 缓存机制对自定义 loader 的影响

在编写 webpack loader 时,指定不同的参数以引入不同的 vue 组件。然而,在 webpack5 中,缓存机制存在一个问题。第一次启动项目后,后续更改参数并不会触发 loader,因为 webpack5 缓存了之前构建的结果。

对于需要缓存机制的场景,有两种解决方案:

禁用缓存

可以通过设置 loader 的 this.cacheable 属性为 false 来禁用缓存。这样,每次修改参数时都会重新触发 loader。

module.exports = function(source, map) {
  this.cacheable(false);
  // ...
};

指定文件不走缓存

如果只需要对某个特定文件禁用缓存,可以使用 webpack 的 cache 属性。

// webpack.config.js
module.exports = {
  module: {
    rules: [
      {
        test: /\.vue$/,
        loader: 'my-loader',
        options: {
          cache: false
        }
      }
    ]
  }
};

通过设置 cache 为 false,webpack 将不会缓存此文件的构建结果。

以上就是webpack5 缓存对于自定义 loader 的影响是什么?的详细内容,更多请关注其它相关文章!