Files
admin_core/demo-project/调试指南.md
张成 845658f193 1
2025-10-08 18:53:38 +08:00

234 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 调试指南
## ✅ 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/)
---
**现在启动项目,打开浏览器开发者工具,就可以看到完整的源码并进行调试了!** 🎉