第一次接触RuoYi-Vue这个前后端分离框架时,我花了整整两天时间才把开发环境跑起来。Redis服务死活启动不了,Node版本总是报错,数据库连接时通时断...如果你现在也卡在这些问题上,别担心,这篇指南就是为你准备的。我们将从实战角度出发,解决Windows环境下部署RuoYi-Vue时最常见的三大拦路虎:Redis启动失败、Node版本冲突和前后端联调问题。
在Windows上部署Redis,90%的问题都集中在服务启动阶段。以下是经过数十次实战验证的排查方案:
先别急着修改配置文件,让我们用管理员权限运行这个命令:
bash复制netstat -ano | findstr 6379
如果看到类似下面的输出,说明端口确实被占用了:
code复制TCP 0.0.0.0:6379 0.0.0.0:0 LISTENING 1234
解决方案有两种:
bash复制taskkill /F /PID 1234
redis.windows.conf,找到并修改:code复制port 6380
提示:修改端口后,别忘了同步更新RuoYi的
application.yml中的Redis配置
很多初学者直接双击redis-server.exe启动,结果看到这个错误:
code复制Fatal error: can't open config file 'redis.windows.conf'
正确启动方式是在Redis目录打开CMD,执行:
bash复制redis-server.exe redis.windows.conf --maxmemory 200m
参数说明:
--maxmemory:限制Redis内存使用,避免开发环境占用过多资源--save 60 1:每分钟如果有1次写入就保存快照(可选)开发时手动启动没问题,但系统重启后Redis不会自动运行。将其安装为服务更可靠:
bash复制redis-server --service-install redis.windows.conf --service-name RedisForRuoYi
net start RedisForRuoYi
服务管理常用命令:
| 命令 | 作用 |
|---|---|
redis-server --service-start |
启动服务 |
redis-server --service-stop |
停止服务 |
redis-server --service-uninstall |
删除服务 |
RuoYi-Vue前端对Node版本有严格要求,太新或太旧都会导致npm install失败。以下是避坑指南:
根据项目经验整理的版本匹配表:
| RuoYi-Vue版本 | 推荐Node版本 | npm版本 | 已知问题 |
|---|---|---|---|
| v3.x | 14.17.0 | 6.14.13 | 新版本可能报错 |
| v4.x | 16.13.0 | 8.1.0 | 需要Python2.7 |
| 最新master | 18.12.1 | 8.19.2 | 需检查依赖 |
快速检查当前环境:
bash复制node -v
npm -v
bash复制choco install nvm
bash复制nvm install 14.17.0
nvm use 14.17.0
常见问题处理:
npm rebuild node-sass除了淘宝镜像,还可以尝试:
bash复制npm install --registry=https://registry.npmmirror.com --verbose
关键参数:
--verbose:显示详细日志便于排查--force:强制重新构建(解决缓存问题)--legacy-peer-deps:忽略peer依赖冲突环境搭建完成后,真正的挑战才刚刚开始。以下是联调阶段的高频问题:
ruoyi-ui/vue.config.js中的代理配置必须与后端匹配:
javascript复制devServer: {
proxy: {
'/prod-api': {
target: 'http://localhost:8080',
changeOrigin: true,
pathRewrite: {
'^/prod-api': ''
}
}
}
}
常见错误:
application.yml中的prod-api前缀当控制台出现DataSource closed错误时,按顺序检查:
基础配置:
yaml复制# application-druid.yml
url: jdbc:mysql://localhost:3306/ry-vue?useSSL=false
username: root
password: 123456
驱动版本:
xml复制<!-- pom.xml -->
<mysql.version>8.0.28</mysql.version>
时区设置:
在连接字符串后追加:
code复制&serverTimezone=Asia/Shanghai
部署完成后,运行这套诊断命令确保一切正常:
bash复制# 后端检查
curl http://localhost:8080/actuator/health
# Redis检查
redis-cli ping
# 前端检查
npm run lint
预期输出:
{"status":"UP"}PONG解决了基础问题后,这些技巧能让你的开发效率翻倍:
编码统一:
Lombok支持:
安装插件后增加VM参数:
code复制-javaagent:lombok.jar
热部署配置:
xml复制<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
Vue Devtools:
bash复制npm install -g @vue/devtools
vue-devtools
API Mock:
在mock目录下新建user.js:
javascript复制module.exports = [
{
url: '/user/list',
type: 'get',
response: req => {
return {
code: 200,
data: [{id: 1, name: '测试用户'}]
}
}
}
]
性能分析:
bash复制npm run build -- --report
遇到控制台报错时,先看这些关键日志:
Redis连接失败:
code复制RedisConnectionFailureException: Unable to connect to Redis
检查:防火墙设置、Redis密码、网络策略
Node内存溢出:
code复制FATAL ERROR: Ineffective mark-compacts near heap limit
解决方案:
bash复制set NODE_OPTIONS=--max_old_space_size=4096
数据库锁表:
code复制Lock wait timeout exceeded
执行:
sql复制SHOW PROCESSLIST;
KILL [id];
记住,环境搭建是个系统工程,遇到问题时保持耐心,按模块逐个击破。我在第一次部署时至少重装了5次Redis,但每次失败都让我对系统理解更深一层。现在你有了这份指南,应该能少走很多弯路。如果还是遇到棘手问题,不妨去RuoYi的Gitee仓库提Issue,社区通常很活跃。