学习笔记 - SourceMap

devtool

官方表格:

devtool build rebuild production quality
(none) +++ +++ yes bundled code
eval +++ +++ no generated code
cheap-eval-source-map + ++ no transformed code (lines only)
cheap-module-eval-source-map o ++ no original source (lines only)
eval-source-map -- + no original source
cheap-source-map + o no transformed code (lines only)
cheap-module-source-map o - no original source (lines only)
inline-cheap-source-map + o no transformed code (lines only)
inline-cheap-module-source-map o - no original source (lines only)
source-map -- -- yes original source
inline-source-map -- -- no original source
hidden-source-map -- -- yes original source
nosources-source-map -- -- yes without source content

+++ super fast, ++ fast, + pretty fast, o medium, - pretty slow, -- slow

关于 quality 的说明:

  • bundled code 在开发者工具中会直接看到最终生成的合并过后的超大 js ,而不会看到按照源码分离的模块。

  • generated code 能够看到按源码分离的各个模块,模块内容是 webpack 处理后的。比如,如果源码里面是 import {test} from "module"; ,那么在开发者工具中看到的大致是 var module__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42); module__WEBPACK_IMPORTED_MODULE_1__.a();

  • transformed code 能够看到按源码分离的各个模块,看到的模块内容是经过 loaders 处理之后的,但是未经过 webpack 处理的代码。比如,如果源码中是 import {test} from "module"; class A extends test {} ,那么此处看到的是 import {test} from "module"; var A = function(_test) { ... }(test);

  • original source 能够看到按源码分离的各个模块,看到的模块内容是编译转换之前的,和源码里面的一致。这个需要 loader 支持,如果某个模块经过的某个 loader 没有正确处理 Source Map ,那么最终生成的代码是无法正确映射到源码上的。

  • without source content Source Map 不包含源码内容。通常浏览器会尝试从 web 服务器或者文件系统中加载源码,此时必须确保设置了正确的 output.devtoolModuleFilenameTemplate

  • (lines only) Source Map 被简化为每行一个映射。这通常意味着每个语句只有一个映射(假设你使用这种方式)。这会妨碍你在语句级别上调试执行,也会妨碍你在每行的一些列上设置断点。与压缩后的代码组合后,映射关系是不可能实现的,因为压缩工具通常只会输出一行。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最近在学习 Webpack,网上大多数入门教程都是基于 Webpack 1.x 版本的,我学习 Webpack 的...
    My_Oh_My阅读 12,520评论 40 247
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,477评论 19 139
  • GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要...
    萧玄辞阅读 14,334评论 7 110
  • 过去的 将来的 明了却无奈 曾经雄心壮志 曾经豪情凌云 都消散在懵懂的无知中 错了么 静夜悠阳中 怀里揣着最后的年...
    太乄伤脑筋阅读 1,456评论 0 0
  • 光芒万丈的青春,闪耀着最唯美的光泽,但是,青春的日子里总是伴随着疼痛的,似乎只有深切的疼和坚强地承受疼痛的身体才是...
    嫣容浅笑阅读 3,349评论 0 2