开发环境应配置cheap-module-source-map以兼顾速度与行号精准定位,生产环境需用source-map并配合hidden-source-map防止源码泄露;css/sass须单独开启loader级sourcemap,验证需通过chrome devtools的sources面板和css规则跳转确认。

关键在于按环境分层配置,不一刀切:开发阶段要快且能准确定位行号,生产阶段要全量映射但避免源码泄露。
开发环境:用 cheap-module-source-map 作为默认选择
它只保留行号映射(不记录列信息),生成速度快,不影响热更新体验;同时带 module 关键字,能回溯到 .vue、.ts、.scss 等经 loader 处理后的原始文件。
- Webpack 默认开发模式(
mode: 'development')就采用这个值,无需额外配置 - 避免用
cheap-source-map:它不支持 loader 映射,点进 Sass 或 TS 文件会跳错位置 - 禁用
eval-source-map调试 CSS:虽然构建快,但在多层嵌套或@use场景下容易行号偏移
生产环境:生成完整 source-map,但不暴露给公网
需要精确还原错误堆栈和变量名,所以必须启用含行列信息的全量映射;但不能让 .map 文件被任意访问。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- Webpack 中设
devtool: 'source-map',Vite 中配build.sourcemap: true - 去掉文件末尾的
sourceMappingURL注释,改用hidden-source-map(Webpack)或sourcemap: "hidden"(Vite) - 把 .map 文件上传到 Sentry、Bugsnag 或内部符号服务器,绑定 release 版本,供错误解析时使用
CSS 和预处理器需单独开启 sourceMap
Webpack 的 devtool 控制 JS 映射,但 Sass/Less/PostCSS 的映射由各自 loader 决定,漏配会导致样式调试失效。
- Vite 项目:在
vite.config.ts中为css.preprocessorOptions.sass加sourceMap: true - Vue CLI 项目:在
vue.config.js的css.sourceMap设为true,并确保sass-loader的sassOptions.sourceMap也为true - Dart Sass CLI 编译时加
--sourcemap参数
验证是否真正生效,看两个信号
别只看配置写了没,要确认浏览器实际加载成功。
- 打开 Chrome DevTools → Sources 面板,左侧是否出现
webpack://或debug/下的src/目录?能看到.vue或.scss文件才算通 - 在 Elements 面板点击某条 CSS 规则右侧的文件链接(如
main.scss:42),能否跳转并高亮对应源码行?不能说明某一层映射断了 - 检查生成的 .map 文件里
sources字段:路径应为相对路径且可被浏览器解析(例如src/components/Button.vue),不能含../node_modules/或指向构建目录外
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










