# 调试指南 ## ✅ Source Map 已启用 现在 Demo 项目已配置了完整的 Source Map 支持,可以在浏览器中直接调试源码! ### 📋 Source Map 配置 #### 开发模式(`npm run dev`) ```javascript devtool: 'eval-source-map' ``` **特点**: - ✅ 高质量的 source map - ✅ 可以看到原始源代码 - ✅ 可以设置断点调试 - ✅ 包含列信息(精确定位) - ⚡ 重新构建速度快 #### 生产模式(`npm run build`) ```javascript devtool: 'source-map' ``` **特点**: - ✅ 完整的 source map - ✅ 生成独立的 .map 文件 - 📦 适合部署到生产环境 ### 🔍 如何调试 #### 1. 在浏览器中调试 **启动开发服务器**: ```bash npm run dev ``` **打开浏览器开发者工具**: - Chrome:按 `F12` 或 `Ctrl+Shift+I` - Firefox:按 `F12` **查看源码**: 1. 点击 **Sources** 标签页(Chrome)或 **调试器** 标签页(Firefox) 2. 在左侧文件树中可以看到: ``` webpack:// ├── demo-project/ │ └── src/ │ ├── main.js ← Demo 项目源码 │ ├── App.vue │ └── views/ └── src/ ← 框架源码 ├── index.js ├── components/ ├── views/ └── utils/ ``` #### 2. 设置断点 **在源码中设置断点**: 1. 在 Sources 中找到要调试的文件 2. 点击行号设置断点(会出现蓝色标记) 3. 刷新页面或触发相关操作 **使用 debugger 语句**: ```javascript // 在代码中添加 debugger // 例如在 main.js 中 mounted() { debugger // ← 程序会在这里暂停 this.$store.dispatch('user/setAuthorityMenus', { Main: AdminFramework.Main, ParentView: AdminFramework.ParentView, Page404: AdminFramework.Page404 }) } ``` #### 3. 查看变量 断点暂停时可以: - 在 **Scope** 面板查看局部变量 - 在 **Watch** 面板添加监视表达式 - 在 **Console** 中输入变量名查看值 #### 4. 单步调试 使用调试控制按钮: - **继续** (`F8`) - 继续执行到下一个断点 - **单步跳过** (`F10`) - 执行当前行,不进入函数 - **单步进入** (`F11`) - 进入函数内部 - **单步跳出** (`Shift+F11`) - 跳出当前函数 ### 🎯 调试框架源码 由于项目直接使用框架源码(`../../src/index.js`),你可以: #### 1. 直接在框架代码中设置断点 例如在 `src/index.js` 的 install 方法中: ```javascript install(Vue, options = {}) { debugger // ← 可以在这里调试框架初始化过程 if (this.installed) return // ... } ``` #### 2. 调试 Store Actions 在 `src/store/user.js` 中: ```javascript async handleLogin({ state, commit, dispatch }, { userFrom, Main, ParentView, Page404 }) { debugger // ← 调试登录流程 // ... } ``` #### 3. 调试 HTTP 请求 在 `src/utils/http.js` 中: ```javascript post(url, data, config) { debugger // ← 调试 API 请求 // ... } ``` ### 📊 Source Map 类型对比 | 类型 | 构建速度 | 重构速度 | 质量 | 适用场景 | |------|---------|---------|------|---------| | `eval-source-map` | 慢 | 快 | 高 | **开发** ✅ | | `cheap-module-source-map` | 中 | 中 | 中 | 开发 | | `source-map` | 很慢 | 很慢 | 最高 | **生产** ✅ | | `none` | 最快 | 最快 | 无 | 不调试 | ### 💡 调试技巧 #### 1. 使用 Vue DevTools 安装 Vue DevTools 浏览器插件: - Chrome: [Vue.js devtools](https://chrome.google.com/webstore) - Firefox: [Vue.js devtools](https://addons.mozilla.org/firefox) 功能: - 查看组件树 - 检查组件数据和 props - 查看 Vuex 状态 - 追踪事件 #### 2. Console 调试技巧 ```javascript // 查看 Store 状态 console.log('Store:', this.$store.state) // 查看路由信息 console.log('Route:', this.$route) // 查看组件实例 console.log('Component:', this) // 使用 console.table 显示数组 console.table(this.list) // 使用 console.dir 显示对象结构 console.dir(AdminFramework) ``` #### 3. 网络请求调试 在 **Network** 标签页中: - 查看 API 请求和响应 - 检查请求头和响应头 - 查看请求耗时 ### ⚠️ 注意事项 #### 1. Source Map 文件大小 开发模式的 source map 会增加包体积,但: - ✅ 只在开发环境使用 - ✅ 不影响生产环境性能 - ✅ 不会部署到生产服务器 #### 2. 刷新页面 修改代码后: - 保存文件会自动热更新(HMR) - 如果 HMR 失败,手动刷新页面(`F5`) #### 3. 清除缓存 如果看到旧代码: - 硬刷新:`Ctrl+Shift+R` (Chrome) 或 `Ctrl+F5` - 或在开发者工具中禁用缓存 ### 🚀 开始调试 1. **启动开发服务器**: ```bash npm run dev ``` 2. **打开浏览器**: 访问 `http://localhost:8080` 3. **打开开发者工具**: 按 `F12` 4. **设置断点**: 在 Sources 中找到源文件并设置断点 5. **开始调试**: 刷新页面或触发相关操作 ### 📚 相关资源 - [Chrome DevTools 官方文档](https://developer.chrome.com/docs/devtools/) - [Firefox Developer Tools](https://developer.mozilla.org/docs/Tools) - [Vue DevTools](https://devtools.vuejs.org/) - [Webpack DevTool 文档](https://webpack.js.org/configuration/devtool/) --- **现在启动项目,打开浏览器开发者工具,就可以看到完整的源码并进行调试了!** 🎉