ruoyi-vue-pro本地环境搭建(超级详细,带异常处理)

1、环境要求

JDK版本:

JDK 8 + Spring Boot 2.7(master分支)

JDK 17/21 + Spring Boot 3.2(master-jdk17分支)
数据库: MySQL 5.7+(支持Oracle/PostgreSQL/SQL Server等)
Redis: 5.0+
Node.js:14+(前端开发需要)
安装好以上软件后需要启动MySQL,Redis服务

安装好以上软件后需要启动MySQL,Redis服务

安装好以上软件后需要启动MySQL,Redis服务

2、后端安装

1)克隆仓库

java 复制代码
git clone https://gitee.com/zhijiantianya/ruoyi-vue-pro.git

2)创建用户及数据库

java 复制代码
CREATE DATABASE `ruoyi-vue-pro` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';


CREATE USER 'yudao'@'%' IDENTIFIED WITH mysql_native_password BY 'yudao123';
CREATE USER 'yudao'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yudao123';


GRANT ALL ON yudao.* TO 'binghuo'@'%' ;
GRANT ALL ON yudao.* TO 'binghuo'@'localhost' ;

FLUSH PRIVILEGES;

3)导入表及数据

在src/sql/mysql目录小有两个sql脚本,都导入。

生产环境之下一下命令

java 复制代码
mysql -uroot -p ruoyi-vue-pro < ruoyi-vue-pro.sql
mysql -uroot -p ruoyi-vue-pro < quartz.sql

4)配置后端服务

src/main/resources/application-local.yaml中按需修改server.port, spring.datasource相关内容,参考如下。

java 复制代码
server:
  port: 48080




spring:
  # 服务模块

  # 数据源配置项
  autoconfigure:
    exclude:
      - com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源
      - org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration # 排除积木报表带来的 MongoDB 的自动配置
#      - org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration # 默认 local 环境,不开启 Quartz 的自动配置
      - de.codecentric.boot.admin.server.config.AdminServerAutoConfiguration # 禁用 Spring Boot Admin 的 Server 的自动配置
      - de.codecentric.boot.admin.server.ui.config.AdminServerUiAutoConfiguration # 禁用 Spring Boot Admin 的 Server UI 的自动配置
      - de.codecentric.boot.admin.client.config.SpringBootAdminClientAutoConfiguration # 禁用 Spring Boot Admin 的 Client 的自动配置
  datasource:
    druid: # Druid 【监控】相关的全局配置
      web-stat-filter:
        enabled: true
      stat-view-servlet:
        enabled: true
        allow: # 设置白名单,不填则允许所有访问
        url-pattern: /druid/*
        login-username: # 控制台管理用户名和密码
        login-password:
      filter:
        stat:
          enabled: true
          log-slow-sql: true # 慢 SQL 记录
          slow-sql-millis: 100
          merge-sql: true
        wall:
          config:
            multi-statement-allow: true
    dynamic: # 多数据源配置
      druid: # Druid 【连接池】相关的全局配置
        initial-size: 1 # 初始连接数
        min-idle: 1 # 最小连接池数量
        max-active: 20 # 最大连接池数量
        max-wait: 600000 # 配置获取连接等待超时的时间,单位:毫秒
        time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒
        min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒
        max-evictable-idle-time-millis: 900000 # 配置一个连接在池中最大生存的时间,单位:毫秒
        validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效
        test-while-idle: true
        test-on-borrow: false
        test-on-return: false
      primary: master
      datasource:
        master:
          name: ruoyi-vue-pro
          url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
          
          username: yudao
          password: yudao123
        #          username: sa
        #          password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W
#          username: SYSDBA # DM 连接的示例
#          password: SYSDBA # DM 连接的示例
        slave: # 模拟从库,可根据自己需要修改
          name: ruoyi-vue-pro
          lazy: true # 开启懒加载,保证启动速度
          url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
         
          username: yudao
          password: yudao123
  #          username: sa
  #          password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W

  # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
  redis:
    host: 127.0.0.1 # 地址
    port: 6379 # 端口
    database: 0 # 数据库索引
    #password: Binghuo2435 # 密码,建议生产环境开启

5)启动后端服务

控制台没有报错,打印出项目启动成功,结果如下:

6)打包发布方法

建议参考以下博文修改pom.xml中配置进行优化

ruoyi-vue-pro优化------模块单独打包,增量更新、部署,告别打包等待,上传等待

3、前端安装

1)克隆仓库

java 复制代码
git clone https://gitee.com/yudaocode/yudao-ui-admin-vue2.git
或者
git clone https://gitee.com/yudaocode/yudao-ui-admin-vue3.git

2)配置阿里npm镜像源

java 复制代码
# 查看当前镜像源
npm config get registry

# 设置阿里镜像源
npm config set registry http://registry.npmmirror.com

# 还原官网
npm config set registry https://registry.npmjs.org/

3)安装依赖及错误处理

java 复制代码
# 安装依赖
cd yudao-ui-admin-vue2
npm install

如果出现如下错误,请使用命令npm install --legacy-peer-deps,这是由于包兼容性导致的

java 复制代码
npm ERR! Conflicting peer dependency: eslint@6.8.0
npm ERR! node_modules/eslint
npm ERR!   peer eslint@">= 1.6.0 < 7.0.0" from @vue/cli-plugin-eslint@4.5.18
npm ERR!   node_modules/@vue/cli-plugin-eslint
npm ERR!     dev @vue/cli-plugin-eslint@"4.5.18" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.

4)配置后端接口及代理

在yudao-ui-admin-vue2\.env.dev中配置后端服务路径

java 复制代码
VUE_APP_BASE_API = 'http://localhost:48080'

在 E:\yudao-20240403\yudao-ui-admin-vue2\vue.config.js中修改后端代理

java 复制代码
   proxy: {
      ['/proxy-api']: {
        target: `http://localhost:48080`,
        // target: `http://api-dashboard.yudao.iocoder.cn`,
        changeOrigin: true,
        pathRewrite: {
          ['^' + process.env.VUE_APP_BASE_API]: ''
        }
      }
    },

5)启动前端应用及错误处理

bash 复制代码
yudao-ui-admin-vue2
npm run dev

启动完成后,正常情况控制台会输出,按住ctrl 点击 http://localhost:80/在浏览器中访问

一般都会出现如下这个错误

java 复制代码
SystemError [ERR_SYSTEM_ERROR]: A system error occurred: uv_os_gethostname returned ENOSYS (function not implemented)
    at new Defaults (E:\yudao-ui-admin-vue2\node_modules\@achrinza\node-ipc\entities\Defaults.js:26:20)
    at new Parser (E:\yudao-ui-admin-vue2\node_modules\@achrinza\node-ipc\entities\EventParser.js:8:14)
    at Object.<anonymous> (E:\yudao-ui-admin-vue2\node_modules\@achrinza\node-ipc\dao\client.js:11:19)
    at Module._compile (node:internal/modules/cjs/loader:1105:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (E:\yudao-ui-admin-vue2\node_modules\@achrinza\node-ipc\services\IPC.js:4:14) {
  code: 'ERR_SYSTEM_ERROR',
  info: {
    errno: -4054,
    code: 'ENOSYS',
    message: 'function not implemented',
    syscall: 'uv_os_gethostname'
  },
  errno: [Getter/Setter],
  syscall: [Getter/Setter]
}

修复方法:

按住ctrl 点击第二行的yudao-ui-admin-vue2\node_modules\@achrinza\node-ipc\entities\Defaults.js,找到 const os = require('os'); 在后面上如下语句

bash 复制代码
const os = require('os'); 

os.hostname=()=>"localhost"

6)打包发布

java 复制代码
cd yudao-ui-admin-vue2
npm run build:prod

二级目录发布及nginx配置可以参考以前的博文

Ruoyi-vue-pro Vue + nginx 二级目录部署到云服务器

vite build 发布到nginx二级目录

vue-cli build, vite build 生产部署刷新或弹窗404,页面空白修复方法

==========================================================

== 如果我的博文对您有帮助请别忘了点赞,收藏,关注,谢谢! ==

== 您的关注和鼓励是我继续努力的动力源泉 ==

==========================================================

相关推荐
桃子叔叔2 小时前
react-wavesurfer录音组件1:从需求到组件一次说清楚
前端·react.js·前端框架
陈随易2 小时前
聊一聊2025年用AI的思考与总结
前端·后端·程序员
@PHARAOH2 小时前
WHAT - React startTransition vs setTimeout vs debounce
前端·react.js·前端框架
绝美焦栖2 小时前
低版本pdfjs升级
前端·javascript·vue.js
阿里巴巴终端技术2 小时前
二十年,重新出发!第 20 届 D2 技术大会「AI 新」议题全球征集正式开启
前端·react.js·html
卤蛋fg62 小时前
vue 可视化表单设计器 vxe-form-design 创建自定义控件的详细用法(教程一)
vue.js
阿祖zu2 小时前
2025 AI 总结:技术研发的技能升维与职业路径系统重构的思考
前端·后端·ai编程
IT_陈寒2 小时前
Vite 5分钟性能优化实战:从3秒到300ms的冷启动提速技巧(附可复用配置)
前端·人工智能·后端
迦南giser2 小时前
webpack从0到1详解
前端·javascript·css·webpack·node.js