webpack生成sourcemap配置

2,192 阅读1分钟

最近发现一个react项目使用webpack最后生成的产物里面,没有对应sourcemap文件,定位后发现主要是这些条件都要满足,这里记录下:

  1. 项目的压缩插件从uglifyjs迁移成了terser,而terser压缩插件不支持cheap-module-source-map模式,仅支持source-map, inline-source-map, hidden-source-map and nosources-source-map

  2. webpack配置中的output.filename必须是以js结尾。之前项目的输出文件名是以zip结尾的,是无法生成sourcemap文件的

  3. webpack配置中的output.sourceMapFilename可以配置生成的sourcemap文件的路径

最后修改后的webpack配置如下:

{ 
  devtool: 'source-map',
  output: {
    filename: 'js/xxx.js',
    sourceMapFilename: 'sourcemap/xxx.js.map'
    ...
  },
  optimization: {
    minimize: true,
    minimizer: [new TerserPlugin()]
  }
}

基本满足以上三点,最后的生成产物就会包含sourcemap文件,对应的js文件底部,也会有响应的注释,指明sourcemap文件的路径