最近在重看 Webpack 相关的文章,发现了一些以前囫囵吞枣学习的一些遗漏点,现在作下记录。
- devtool:控制是否生成,以及如何生成 source map。增强调试过程,不同的值会明显影响到构建(build)和重新构建(rebuild)的速度。
- source-map 生成一个独立的 source-map 文件,将 bundle.js 与源代码进行映射(在 bundle.js 文件中会有一个注释,指向 souece-map 文件)
//# sourceMappingURL = bundle.js.map - evel-source-map 生成 source-map,但是以 DataUrl 的形式添加到 eval 函数的后面(eval 函数即
__webpack_modules__对象中值转为 eval 函数,目的是为了解析 DataUrl) - inline-source-map 以 DataUrl 注释的形式放在 bundle.js 文件的最后
- cheap-source-map 生成 source-map,但更高效,因为它没有生成列映射,错误信息只能确定到
行 - cheap-module-source-map 类似
cheap-source-map,但对源自loader的 source-map 处理会更好 - hidden-source-map 不生成
bundle.js文件最后的指向注释 - noresources-source-map 生成的 source-map 只有错误信息提示,不会指向源代码
- 值是可以组合的,但有一定规则:
- inline-|hidden-|eval 三选一
- noresources 可选
- cheap 可选,并且可以跟随 module 的值
[inline-|hidden-|eval][noresources-][cheap-[module-]] source-map
- 不同阶段推荐的值
- 开发阶段:推荐使用
source-map或者cheap-module-source-map,这也分别是 Vue 和 React 使用的值,可以获取调试信息,方便快速开发 - 测试阶段:推荐使用
source-map或者cheap-module- .source-map - 发布阶段:使用 false 或缺省
- 开发阶段:推荐使用
- source-map 生成一个独立的 source-map 文件,将 bundle.js 与源代码进行映射(在 bundle.js 文件中会有一个注释,指向 souece-map 文件)