webpck 之(14) 优化配置 之 source-map
开发环境和生产环境皆可
source-map: 一种提供源代码到构建后代码映射技术(如果构建后代码出错了,通过映射可以追踪源代码的位置)
[inline-|hidden-|eval-] [nosources-] [cheap-[module-]] sourcce-map
source-map 外部
错误代码准确信息 和 源代码的错误位置
inline-source-map 内联
1.只生成一个内联source-map,内容在打包的built.js中
2.错误代码准确信息 和 源代码的错误位置
hidden-source-map 外部
1.会生成一个built.js.map (同名.map)的文件
2.错误代码准确信息 但是 没有错误位置,不能追踪到源代码的位置,只能提示构建后代码的错误位置
eval-source-map 也是内联
1.每一个文件都生成对应的source-map,都在eval 内容在打包的built.js中
2.错误代码准确信息 和 源代码的错误位置
nosources-map 外部
1.错误代码准确信息 但是 没有任何源代码信息
cheap-source-map 外部
1.错误代码准确信息 和 源代码的错误位置
2.只能精确到行
若很多代码写成一行,就只能告诉我们是哪一行,却不知道是哪一列,所以要避免有这种情况发生
( 但是 source-map 却可以很准确告诉哪一行)
cheap-module-source-map 外部
1.错误代码准确信息 和 源代码的错误位置
2.module会将loader的source map加入
总结: 内联和 外部的区别:1.外部生成了文件,内联没有 2.内联构建速度更快
开发环境:速度快 , 调试更友好
速度快(eval>inline>cheap)
eval-cheap-source-map 组合可以打包更快
eval-source-map
调试更友好
source-map 这种调试最友好
cheap-module-source-map
cheap-source-map
所以通过以上结论: eval-source-map / eval-cheap-module-source-map 最符合
扩展: vue-cli默认是使用 eval-source-map
生产环境:源代码要不要隐藏?调试要不要更友好
内联会让代码体积变大,所以在生产环境不用内联,所有内联方案都排除掉
nosources-source-map 全部隐藏
hidden-source-map 隐藏源代码 不隐藏构建后的代码,且会提示构建后代码错误信息
------> 如果为了安全用上面两个
但是若仅仅考虑打包速度和调试友好,那就用 source-map / cheap-source-map
怎么配置?
在webpack.config.js中配置和devServer同级的
module.exports = { devServer:{ }, devtool:'source-map' }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2019-04-28 HTML 转 PDF的两种实现方式