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,页面空白修复方法

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

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

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

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

相关推荐
GGGG寄了15 小时前
CSS——CSS引入方式+选择器类型
前端·css·html
墨染青竹梦悠然15 小时前
基于Django+vue的图书借阅管理系统
前端·vue.js·后端·python·django·毕业设计·毕设
码农六六15 小时前
js函数柯里化
开发语言·前端·javascript
爱敲代码的小鱼15 小时前
Vue的简介:
前端·javascript·vue.js
H_ZMY15 小时前
前端瀑布流布局:从基础实现到高性能优化全解析
前端·性能优化
星夜落月15 小时前
从零部署Wallos:打造专属预算管理平台
服务器·前端·网络·建站
qq_124987075315 小时前
基于html的书城阅读器系统的设计与实现(源码+论文+部署+安装)
前端·vue.js·spring boot·后端·mysql·信息可视化·html
一个懒人懒人16 小时前
mysql2连接池配置与优化
前端·mysql
PorkCanteen16 小时前
Cursor使用-从问题到解决方案(以及一些通用rules)
前端·ai·ai编程