当前位置: 首页 > news >正文

保姆级教程:从零到一搞定 RuoYi-Vue-Pro 本地部署(含 npm 依赖、MySQL 连接、演示模式关闭全流程)

从零开始部署RuoYi-Vue-Pro:完整避坑指南

第一次接触RuoYi-Vue-Pro这个前后端分离的快速开发平台时,我被它丰富的功能模块所吸引,但在本地部署过程中却踩了不少坑。从npm依赖冲突到MySQL连接配置,再到演示模式的关闭,每一步都可能让新手开发者陷入困境。本文将分享我完整部署RuoYi-Vue-Pro的经验,帮助你避开这些陷阱,快速搭建起可用的开发环境。

1. 环境准备与项目初始化

在开始之前,我们需要确保本地开发环境满足RuoYi-Vue-Pro的基本要求。这个平台基于Spring Boot和Vue.js构建,因此需要准备以下工具:

  • Node.js:建议安装LTS版本(如16.x),避免使用过高版本导致兼容性问题
  • Java:JDK 1.8或更高版本
  • MySQL:5.7或8.0版本均可,但配置方式有所不同
  • Maven:用于后端项目依赖管理
  • Git:用于克隆项目代码
# 验证Node.js和npm版本 node -v npm -v # 验证Java版本 java -version

下载项目代码后,你会注意到RuoYi-Vue-Pro采用了典型的前后端分离结构:

ruoyi-vue-pro/ ├── yudao-ui/ # 前端项目 └── yudao-server/ # 后端项目

2. 前端项目配置与依赖安装

进入前端项目目录(yudao-ui)后,首先需要安装依赖。这里往往是第一个坑点——现代npm版本对peer依赖的严格检查可能导致安装失败。

常见问题及解决方案

  1. peer依赖冲突:当看到类似"peer eslint@">= 1.6.0 < 7.0.0""的错误时,说明npm无法自动解决依赖版本冲突
# 解决方案:使用--legacy-peer-deps参数绕过严格检查 npm install --legacy-peer-deps
  1. node-sass编译问题:如果遇到node-sass相关错误,可能是Node.js版本不兼容
# 解决方案:要么降低Node.js版本,要么重建node-sass npm rebuild node-sass
  1. 内存不足:大型项目编译可能消耗大量内存
# 解决方案:增加Node.js内存限制 export NODE_OPTIONS=--max_old_space_size=4096

安装完成后,可以通过以下命令启动前端开发服务器:

npm run dev

3. 后端数据库配置与连接

后端项目(yudao-server)的数据库配置是另一个容易出错的环节。RuoYi-Vue-Pro默认配置是针对MySQL 8.0的,如果你使用的是MySQL 5.7,需要相应调整。

关键配置文件位置yudao-server/src/main/resources/application-dev.yml

MySQL 5.7与8.0配置差异

配置项MySQL 5.7MySQL 8.0
驱动类com.mysql.jdbc.Drivercom.mysql.cj.jdbc.Driver
时区参数serverTimezone=GMT%2B8serverTimezone=CTT
SSL设置useSSL=falseallowPublicKeyRetrieval=true

典型MySQL 5.7配置示例:

spring: datasource: dynamic: datasource: master: url: jdbc:mysql://localhost:3306/ruoyi-vue-pro?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8 driver-class-name: com.mysql.jdbc.Driver username: root password: yourpassword

注意:创建数据库时请确保字符集为utf8mb4,以支持完整的Unicode字符集

4. 演示模式关闭与功能启用

RuoYi-Vue-Pro默认启用了演示模式(demo模式),这会限制许多写操作。要关闭演示模式,需要修改以下配置:

  1. 找到application-dev.yml中的演示模式配置:
demo: enabled: false # 改为false关闭演示模式
  1. 某些模块(如BPM工作流)默认是禁用的,需要手动启用:
  • 在根目录pom.xml中取消注释:
<module>yudao-module-bpm</module>
  • yudao-server/pom.xml中取消注释BPM依赖:
<dependency> <groupId>cn.iocoder.boot</groupId> <artifactId>yudao-module-bpm-biz</artifactId> </dependency>
  1. 工作流模块需要额外的数据库表,执行提供的SQL脚本创建bpm_开头的表

5. 常见问题排查与解决

在实际部署过程中,你可能会遇到以下问题:

后端启动失败

  1. 测试用例失败:默认配置会运行测试用例,可能导致启动失败
<!-- 在pom.xml中添加以下配置跳过测试 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin>
  1. 端口冲突:修改application-dev.yml中的server.port配置
server: port: 9088 # 改为未被占用的端口

前端开发建议

  • 使用VSCode作为开发IDE,安装Vetur插件获得更好的Vue开发体验
  • 开发时开启ESLint实时检查,保持代码规范
  • 合理利用RuoYi-Vue-Pro提供的代码生成器功能,快速开发基础CRUD功能

性能优化

  • 前端打包时启用gzip压缩
  • 后端适当调整Druid连接池参数
  • 生产环境务必关闭Swagger等开发工具

6. 项目结构与核心功能探索

成功部署后,建议花时间了解RuoYi-Vue-Pro的项目结构和核心功能模块:

后端主要模块

  • 系统管理:用户、角色、菜单、部门等基础权限控制
  • 工作流程:基于Activiti的业务流程管理(需额外配置)
  • 代码生成:自动生成前后端基础代码
  • 监控中心:系统日志、服务监控等

前端技术栈

  • Vue 2.x + Element UI主体框架
  • Vue Router处理路由
  • Vuex状态管理
  • Axios HTTP客户端

开发工作流建议

  1. 使用代码生成器创建基础模块
  2. 在前端src/views下开发页面组件
  3. 在后端对应模块中添加业务逻辑
  4. 利用内置的权限注解控制访问权限

7. 进阶配置与优化

当基本功能运行正常后,可以考虑以下进阶配置:

多环境配置

RuoYi-Vue-Pro支持通过profile区分不同环境:

# 启动生产环境配置 java -jar yudao-server.jar --spring.profiles.active=prod

Redis集成

默认使用内存缓存,生产环境建议配置Redis:

spring: redis: host: localhost port: 6379 password: database: 0

静态资源处理

生产环境应该将前端构建产物部署到Nginx:

server { listen 80; server_name yourdomain.com; location / { root /path/to/dist; index index.html; try_files $uri $uri/ /index.html; } location /prod-api/ { proxy_pass http://localhost:9088/; proxy_set_header Host $host; } }

安全加固

  1. 修改默认的Shiro加密密钥
  2. 关闭不必要的API文档暴露
  3. 定期更新依赖库版本

部署RuoYi-Vue-Pro的过程就像组装一台精密仪器,每个部件都需要正确配置才能协同工作。记得在每次重大修改后备份配置文件,这样遇到问题时可以快速回滚。

http://www.jsqmd.com/news/759397/

相关文章:

  • 从“单打独斗”到“团队协作”:用协同进化算法(CCEA)解决超大规模参数优化难题
  • 2026年4月诚信的拌合站直销厂家如何选,二手混凝土拌和站/拌合站/水稳拌和站/稳定土拌合站,拌合站批发厂家如何选 - 品牌推荐师
  • 2026年4月高大空间冷暖风机生产厂家推荐,翅片管/散热器/新风机组/乏风取热箱,高大空间冷暖风机直销厂家推荐分析 - 品牌推荐师
  • 3分钟快速上手:OpenWrt网易云音乐解锁插件完整使用指南
  • 害羞刺猬社 - 库克的苹果谢幕与‘懂游宝’千万级游戏服务市场
  • DLSS Swapper终极指南:免费游戏性能优化工具完整使用教程
  • 阴阳师自动化脚本终极指南:智能百鬼夜行AI助手完全教程
  • 五一最后一天|手头现成项目整理,今天有需要可以顺带说一声
  • 如何在3分钟内用OpenWrt插件解锁网易云音乐所有限制
  • 智汇笔记后端实战(三):三级目录树的实现与踩坑
  • p16241
  • LVGL V8.3页面切换还能这么玩?一个手表UI项目教你搞定触摸、编码器、按钮三种交互
  • ROS导航调参实战:如何让你的TurtleBot3在复杂办公室环境里不撞墙?
  • 为开源AI工具OpenClaw配置Taotoken作为模型供应商的详细步骤
  • 终极指南:如何在Photoshop中免费安装AVIF插件并实现高质量图像压缩
  • 从0到成功:通过 SSH(443端口)克隆 GitHub 仓库完整指南
  • 实战指南:构建智能缠论量化分析的高效开源方案
  • 从手机到汽车:拆解AFE芯片ADBMS6832,看电池安全监控如何进化
  • 强化学习中的程序化策略:原理、优势与应用
  • 上下文窗口不是你的问题,你塞进去的东西才是——RAG 精排技术深度解析
  • 为内部知识库问答系统集成多模型备用路由方案
  • 调试以太网PHY芯片,除了插网线看灯,你还可以用MDIO接口做这些事
  • 手机拦截所有陌生电话的作用
  • 如何在Windows 11系统中彻底解决FanControl风扇识别难题:7个实用技巧与深度技术分析
  • 告别电源纹波!手把手教你用UCC28019设计一个高效率PFC模块(附完整原理图与BOM清单)
  • 芯片版图设计避坑指南:那些藏在Metal走线里的寄生电容,我是这样处理的
  • 字节跳动AI应用“豆包”将推付费包月,5088元年费能否跑通商业化?
  • 从modetest输出读懂你的DRM驱动:Linux图形显示调试入门指南
  • 从‘各管各的’到‘共享合并’:聊聊PCIe 6.0流控演进背后的设计哲学
  • 2026年4月桥架工厂推荐,托盘式桥架/槽式桥架/母线槽/模压桥架/铝合金桥架/热浸锌桥架,桥架企业哪家专业 - 品牌推荐师