# HC物业管理系统 - 开发环境配置指南 ## 🚀 环境搭建 ### 1. 基础环境要求 #### Node.js 环境 ```bash # 推荐版本 Node.js >= 12.0.0 npm >= 6.0.0 # 检查版本 node --version npm --version ``` #### 包管理器 ```bash # 使用 npm (推荐) npm install # 或使用 yarn yarn install # 或使用 pnpm pnpm install ``` #### 开发工具 - **VS Code** (推荐) - **WebStorm** - **Chrome DevTools** - **Vue DevTools** ### 2. 项目初始化 ```bash # 克隆项目 git clone [项目地址] cd MicroCommunityWeb # 安装依赖 npm install # 启动开发服务器 npm run dev ``` ## ⚙️ 配置文件详解 ### 1. package.json ```json { "name": "property_web", "version": "1.0.0", "scripts": { "dev": "vue-cli-service serve", // 开发环境 "build": "vue-cli-service build", // 生产构建 "lint": "vue-cli-service lint" // 代码检查 }, "dependencies": { "vue": "^2.6.14", // Vue 2 核心 "element-ui": "^2.15.6", // UI 组件库 "vue-router": "^3.5.1", // 路由管理 "axios": "^0.21.1", // HTTP 客户端 "vue-i18n": "^8.26.7", // 国际化 "echarts": "^5.6.0" // 图表库 } } ``` ### 2. vue.config.js ```javascript module.exports = { devServer: { port: 3000, // 开发服务器端口 open: true, // 自动打开浏览器 proxy: { // 代理配置 '/app': { target: 'http://demo.homecommunity.cn/app', changeOrigin: true, pathRewrite: { '^/app': '' } } } } } ``` ### 3. .eslintrc.js ```javascript module.exports = { root: true, env: { node: true }, extends: [ 'plugin:vue/essential', 'eslint:recommended' ], rules: { 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off' } } ``` ## 🔧 开发环境配置 ### 1. VS Code 配置 #### 推荐扩展 ```json { "recommendations": [ "Vue.volar", // Vue 2 支持 "Vue.vscode-typescript-vue-plugin", "bradlc.vscode-tailwindcss", // Tailwind CSS "esbenp.prettier-vscode", // 代码格式化 "ms-vscode.vscode-typescript-next", "formulahendry.auto-rename-tag", // 自动重命名标签 "christian-kohler.path-intellisense", // 路径智能提示 "ms-vscode.vscode-json" // JSON 支持 ] } ``` #### 工作区设置 ```json { "editor.formatOnSave": true, "editor.tabSize": 2, "editor.insertSpaces": true, "files.autoSave": "afterDelay", "emmet.includeLanguages": { "vue-html": "html", "vue": "html" } } ``` ### 2. 浏览器配置 #### Chrome DevTools - 安装 Vue DevTools 扩展 - 启用网络面板监控 - 配置断点调试 #### 开发模式 ```javascript // 在 main.js 中 Vue.config.devtools = true Vue.config.productionTip = false ``` ### 3. 环境变量配置 #### .env 文件 ```bash # .env.development NODE_ENV=development VUE_APP_BASE_API=http://localhost:8008 VUE_APP_TITLE=物业管理系统(开发环境) # .env.production NODE_ENV=production VUE_APP_BASE_API=https://api.example.com VUE_APP_TITLE=物业管理系统 ``` #### 使用环境变量 ```javascript // 在组件中使用 console.log(process.env.VUE_APP_BASE_API) console.log(process.env.VUE_APP_TITLE) ``` ## 🚨 常见问题解决 ### 1. 依赖安装问题 #### 问题:npm install 失败 ```bash # 清除 npm 缓存 npm cache clean --force # 删除 node_modules 和 package-lock.json rm -rf node_modules package-lock.json # 重新安装 npm install # 或使用淘宝镜像 npm install --registry=https://registry.npmmirror.com ``` #### 问题:版本冲突 ```bash # 检查依赖版本 npm ls # 强制安装 npm install --force # 或使用 npm-check-updates 更新 npx npm-check-updates -u npm install ``` ### 2. 开发服务器问题 #### 问题:端口被占用 ```bash # 查看端口占用 netstat -ano | findstr :3000 # 杀死进程 taskkill /PID [进程ID] /F # 或修改端口 # vue.config.js devServer: { port: 3001 } ``` #### 问题:代理不工作 ```javascript // 检查代理配置 devServer: { proxy: { '/api': { target: 'http://localhost:8008', changeOrigin: true, pathRewrite: { '^/api': '' }, logLevel: 'debug' // 添加调试日志 } } } ``` ### 3. 构建问题 #### 问题:构建失败 ```bash # 清理构建缓存 npm run build -- --clean # 检查构建日志 npm run build --verbose # 或使用生产模式构建 NODE_ENV=production npm run build ``` #### 问题:文件过大 ```javascript // vue.config.js 配置代码分割 configureWebpack: { optimization: { splitChunks: { chunks: 'all', cacheGroups: { vendor: { name: 'chunk-vendors', test: /[\\/]node_modules[\\/]/, priority: 10, chunks: 'initial' } } } } } ``` ### 4. 代码质量问题 #### 问题:ESLint 错误 ```bash # 自动修复 npm run lint -- --fix # 检查特定文件 npm run lint src/views/room/roomList.vue # 忽略特定规则 // eslint-disable-next-line no-console console.log('debug info') ``` #### 问题:Prettier 格式化 ```bash # 安装 Prettier npm install --save-dev prettier # 格式化代码 npx prettier --write "src/**/*.{js,vue,css,scss}" ``` ## 🔍 调试技巧 ### 1. 控制台调试 #### Vue 组件调试 ```javascript // 在组件中添加 mounted() { console.log('组件挂载完成:', this.$data) console.log('组件属性:', this.$props) console.log('组件方法:', this.$options.methods) } ``` #### 网络请求调试 ```javascript // 在 request.js 中添加 service.interceptors.request.use( config => { console.log('请求配置:', config) return config }, error => { console.error('请求错误:', error) return Promise.reject(error) } ) ``` ### 2. 断点调试 #### 浏览器断点 ```javascript // 在代码中添加 debugger methods: { handleSubmit() { debugger; // 浏览器会在这里暂停 // 业务逻辑 } } ``` #### 条件断点 ```javascript // 只在特定条件下暂停 if (this.formData.id) { debugger; // 只在编辑模式下暂停 } ``` ### 3. 性能调试 #### 性能监控 ```javascript // 监控方法执行时间 methods: { async fetchData() { const startTime = performance.now() try { const data = await this.api.getData() console.log('数据获取成功:', data) } catch (error) { console.error('数据获取失败:', error) } finally { const endTime = performance.now() console.log(`方法执行时间: ${endTime - startTime}ms`) } } } ``` ## 📱 移动端开发 ### 1. 响应式设计 #### 媒体查询 ```scss // 移动端样式 @media (max-width: 768px) { .table-container { overflow-x: auto; } .form-item { margin-bottom: 15px; } } ``` #### Element UI 响应式 ```vue ``` ### 2. 触摸优化 #### 触摸事件 ```javascript // 添加触摸支持 mounted() { if ('ontouchstart' in window) { this.isMobile = true this.initTouchEvents() } }, methods: { initTouchEvents() { // 触摸事件处理 } } ``` ## 🚀 性能优化 ### 1. 代码分割 #### 路由懒加载 ```javascript // 路由配置 { path: '/room/list', component: () => import('@/views/room/roomList.vue') } ``` #### 组件懒加载 ```javascript // 组件注册 components: { RoomTree: () => import('@/components/room/roomTree.vue') } ``` ### 2. 缓存策略 #### 数据缓存 ```javascript // 使用 localStorage 缓存 methods: { getCachedData(key) { const cached = localStorage.getItem(key) if (cached) { return JSON.parse(cached) } return null }, setCachedData(key, data) { localStorage.setItem(key, JSON.stringify(data)) } } ``` #### 组件缓存 ```vue ``` ## 📚 学习资源 ### 1. 官方文档 - [Vue 2 官方文档](https://v2.vuejs.org/) - [Element UI 文档](https://element.eleme.cn/) - [Vue Router 文档](https://router.vuejs.org/) ### 2. 社区资源 - [Vue.js 社区](https://vuejs.org/community/) - [Element UI 社区](https://github.com/ElemeFE/element) - [掘金 Vue 专栏](https://juejin.cn/tag/Vue.js) ### 3. 工具推荐 - [Vue DevTools](https://github.com/vuejs/devtools) - [Vetur](https://marketplace.visualstudio.com/items?itemName=octref.vetur) - [Vue Snippets](https://marketplace.visualstudio.com/items?itemName=sdras.vue-vscode-snippets) --- **配置完成后,你就可以开始愉快的开发之旅了!** 🎉 如果遇到其他问题,请查看项目文档或联系团队成员。