Skip to content
☆´∀`☆
On this page

webpack5 配置

...中文文档居然和我机翻的英文文档是一样的,救命

devtool

如何生成 source-map 开发环境:

构建重构质量
eval最快编译后的代码,每个模板单独文件
eval-source-map最慢一般原始代码
eval-cheap-source-map一般loader 后的代码
eval-cheap-module-source-map原始代码 ,但列信息丢失

生产环境:

构建重构质量
none最快最快编译后的
source-map最慢最慢原始代码
hidden-source-map最慢最慢原始代码,但不会暴露给浏览器开发工具

optimization

chunkIds

生成模块 id 算法。
在开发环境下,默认为named
在生产环境下,默认为deterministic

说明示例
named对调试更友好的可读的 id,以路径生成src_page_home_index_vue.e0bb29170b600d66ad4c
deterministic短数字 id,有益于长期缓存。389.e1eea7d03c90c0e226af
natural按使用顺序的数组 id

cache

中文文档

  • type
    • memory 缓存存储在内存中并且不允许额外的配置。
    • filesystem 缓存存储在文件中 可以额外配置
  • name
    • 缓存的名称。
    • 有多份配置的时候可以使用
  • profile
    • 跟踪并记录各个 'filesystem' 缓存项的详细时间信息。
    • 默认 false
  • allowCollectingMemory
    • 收集反序列化期间分配的未使用内存
    • 生产模式:默认 false
    • 开发模式:默认 true
  • buildDependencies
    • ....救命啊虽然文档中的中文字我每个都能看懂,但是连起来就不懂了,这个是个啥?但是听文档的配置应该没错

      推荐在 webpack 配置中设置 cache.buildDependencies.config: [__filename] 来获取最新配置以及所有依赖项。

  • cacheDirectory
    • 这我懂,是缓存目录!
    • 默认值为 node_modules/.cache/webpack
  • cacheLocation
    • 缓存路径 。也是最终的缓存目标~
    • 默认值 path.resolve(cache.cacheDirectory, cache.name)
  • cacheUnaffected
    • memory生效且开启experiments.cacheUnaffected
    • 对未改变的模块进行缓存计算,只引用未改变的模块。
    • 缓存不受影响。
  • compression
    • 缓存文件压缩类型
    • false - 开发模式默认值
    • gzip - 生产模式默认值
    • brotli - 一个压缩算法
  • hashAlgorithm
    • 哈希生成的算法
    • md4 - 默认值
  • idleTimeout
    • 缓存存储发生的时间间隔。默认 60000 是个 number
    • 什么时间间隔,我怎么看不懂,谁和谁间隔,timeout 不是超时吗?
  • idleTimeoutAfterLargeChanges
    • 当检测到较大的更改时,缓存存储应在此之后发生的时间段。
    • 救命啊,这又是什么时间段?鲨了我吧
  • idleTimeoutForInitialStore
    • 初始缓存存储发生后的时间段。
    • 每次看 webpack 文档都痛不欲生,啊~
  • maxAge
    • 允许未使用的缓存留在文件系统缓存中的时间(以毫秒为单位);默认为一个月。5184000000
    • filesystem
  • maxGenerations
    • 定义内存缓存中未使用的缓存项的生命周期。
    • memory
    • 1 - 在一次编译中未使用的缓存被删除。
    • Infinity - 缓存将永远保存。
  • maxMemoryGenerations

一般开发只需要

js
cache: {
    // 将缓存类型设置为文件系统
    type: "filesystem",
    buildDependencies: {
      // 推荐在 webpack 配置中设置 cache.buildDependencies.config: [__filename] 来获取最新配置以及所有依赖项
      config: [__filename],
    },
  },