source-map:一种 提供源代码到构建后代码的映射技术(如果构建后代码出错,可以通过映射追踪到源代码错误)
格式
[inline- | hidden- | eval-][nosources-][cheap-[module-]]source-map
可以任意排列,但 [] 的顺序不能乱
具体介绍:
source-map: 在外部生成一个文件
在控制台会显示 错误代码准确信息 和 源代码的错误位置inline-source-map: 内嵌到bundle.js中
只生成一个source-map
在控制台会显示 错误代码准确信息 和 源代码的错误位置hidden-source-map: 外部
错误代码错误原因,源代码的错误位置
不能追踪源代码错误,只能提示到构建后代码的错误位置eval-source-map: 内嵌
每一个文件都生成对应的source-map
错误代码准确信息,源代码的错误位置nosources-source-map: 外部
错误代码准确信息,没有任何源代码信息cheap-source-map: 外部
错误代码准确信息,源代码的错误位置
只能精准到行cheap-odule-source-map: 外部
错误代码准确信息,源代码的错误位置
module会将loader的source-map加入
内嵌与外部的区别: 1.外部生成单独的文件,内嵌没有 2.内嵌构建速度快
如何选择
这么多 source-map 如何选择?
开发环境:速度快,调试更友好
速度快( eval>inline>cheap>··· )
组合eval-cheap-source-map > eval-source-map调试更友好
source-map > cheap-module-source-map > cheap-source-map最终结果:cheap-module-source-map 和 eval-source-map (vuecli与react脚手架默认),即:cheap-module-eval-source-map
生产环境:源代码要不要隐藏?调试要不要更友好
内嵌会让代码体积变大,所以在生产环境下不用内嵌
nosources-source-map 全部隐藏
hidden-source-map 只隐藏源代码,会提示构建后代码错误信息最终结果:cheap-module-source-map