Devtool

调试:该选项用于控制 Source Map 生成行为。

  • 类型:
export type Devtool =
  | false
  | 'cheap-source-map'
  | 'cheap-module-source-map'
  | 'source-map'
  | 'inline-cheap-source-map'
  | 'inline-cheap-module-source-map'
  | 'inline-source-map'
  | 'inline-nosources-cheap-source-map'
  | 'inline-nosources-cheap-module-source-map'
  | 'inline-nosources-source-map'
  | 'nosources-cheap-source-map'
  | 'nosources-cheap-module-source-map'
  | 'nosources-source-map'
  | 'hidden-nosources-cheap-source-map'
  | 'hidden-nosources-cheap-module-source-map'
  | 'hidden-nosources-source-map'
  | 'hidden-cheap-source-map'
  | 'hidden-cheap-module-source-map'
  | 'hidden-source-map'
  | 'eval-cheap-source-map'
  | 'eval-cheap-module-source-map'
  | 'eval-source-map'
  | 'eval-nosources-cheap-source-map'
  | 'eval-nosources-cheap-module-source-map'
  | 'eval-nosources-source-map';
  • 默认值: false

主要分为 source-mapevalcheapmoduleinlinenosourceshidden 这几种 Source Map 生成的行为,并可以进行组合。

source-map 是最基础的行为,表示生成 Source Map,当开启 Source Map 时会对构建性能有部分开销。

eval 会通过 eval() 包裹模块生成的代码,因此 Rspack 可以在内部对模块的生成结果做缓存,所以当 evalsource-map 组合使用时会优化重新构建时的 Source Map 生成速度。

cheap 表示 Source Map 只会生成行的映射,忽略列的映射关系,以加快 Source Map 的生成速度。

module 用来控制 loader 是否需要返回 Source Map,所以不开 module 时,Source Map 只能映射会 loader 处理之后的代码,同时因为 loader 不需要处理 Source Map,所以 Source Map 生成速度也会有所提升。

inline 表示生成的 Source Map 是否通过 data url 内联到文件末尾。

nosources 用来控制生成的 Source Map 中是否包含源码内容,以减小生成的 Source Map 体积。

hidden 用来控制生成的文件尾部是否包含 # sourceMappingURL=... 注释,浏览器的开发者工具和 VS Code 等会通过这段注释的路径或 data url 来寻找 Source Map,以便在调试时将产物的行列号映射回源码中的位置。