重构谷粒商城09:人人开源框架的快速入门

谷粒商城09——人人开源框架的快速入门

前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。

本项目将基于谷粒商城项目,并且对谷粒商城项目进行二次重构,使其满足最新的主流技术栈要求。

这篇文章主要介绍,人人开源框架的快速入门,使用它快速搭建项目后台。后面下篇文章考虑使用若依重构。敬请期待。

1、人人开源框架简介

人人开源(Renren Open Source)是一个专注于Java开发的开源社区,提供一系列旨在提高开发效率、降低开发成本的开源项目。这些项目涵盖权限管理、快速开发平台、代码生成等多个方面,帮助开发者快速构建和部署应用。

我们将借助它来实现我们后台管理系统的快速搭建。

image-20250306101327269

至于里面各个项目的详细介绍,可以自行了解。

网址:https://gitee.com/renrenio

2、后端导入

我们今天使用的是renren-fast和renren-fast-vue,分别来搭建后端、前端。

clone下代码。

image-20250306102303951

将后端的.git删除。

image-20250306103252889

将其整个拖到我们之前建立的guilimall后端工程文件夹下面。

image-20250306103511570

在项目结构目录下,导入这个项目模块。

image-20250306111021881

同样的,把前端的git目录删除。我们后面再讲解前端部分。

先在idea中,将工程的pom文件进行下更新。

image-20250306104143940

renren子模块的pom文件也需要修改下。避免项目使用jdk版本导致兼容问题,和你项目中jdk版本保持一致即可。

image-20250306172426071

打开navicat,连接我们前面创建的数据库,执行下面sql。当然,实际上,我们前面一篇学习数据库设计,已经执行过了,所以这里就不用重复执行了。

image-20250306104342499

更改下数据库配置,先看application.yml。默认使用的是dev环境。

image-20250306105059223

更改下数据库配置信息。将其替换为你自己创建的数据库。

image-20250306105729916

idea编辑器可能出现如下报错:

Some problems were encountered while building the effective model for org.springframework.boot:test01:jar:2.4.0
'parent.relativePath' of POM org.springframework.boot:test01:2.4.0 (E:\JavaWeb_base\springbootTest\test01\pom.xml) points at com.ltb:springbootTest instead of org.springframework.boot:spring-boot-starter-parent, please verify your project structure @ line 7, column 13
It is highly recommended to fix these problems because they threaten the stability of your build.
For this reason, future Maven versions might no longer support building such malformed projects.

解决办法:在该模块的pom文件中,在<parent>标签中加上<relativePath />

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.0</version><relativePath   />
</parent>

如果项目出现大量爆红,开源reload下maven project。清理idea缓存重新打开项目。

启动项目,成功了。

image-20250306172615488

访问下项目吧。okk,这样就可以了。

image-20250306172658246

3、运行前端项目

使用vscode打开前端项目。

需要具有node环境,我们前面文章早就教过了,这里不再赘述了。没有的同学自己安装。

执行命令。

image-20250306173842393

发现报错。

image-20250306174146998

出现报错,看错误信息,是需要环境中python。

安装一个。记得添加到环境变量。如果自动安装报错,可以去官网下周zip包解压,手动添加导PATH环境变量。

安装官网:https://www.python.org/downloads/windows/

image-20250307100152296

测试下。

image-20250307101439011

关闭vscode,重新打开,在vscode终端也测试下,确保能找到python。

重新执行pnpm install,报错。错误信息如下。

image-20250307102901606

从错误信息来看,node-gyp 无法找到合适的 Visual Studio 安装来编译原生模块。这是因为 node-gyp 需要 Visual Studio 的 C++ 构建工具来编译某些依赖项。

下周安装:https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/

image-20250307103210332

在安装过程中,确保勾选以下组件:

image-20250307111257819

image-20250307114014557

可能会弹窗,需要重启电脑。那你就按提示重启电脑再安装。

image-20250307111853950

再执行,发现还是不行。

仔细观察错误信息:

gyp ERR! UNCAUGHT EXCEPTION
│ gyp ERR! stack TypeError: Cannot assign to read only property 'cflags' of object '#<Object>'
│ gyp ERR! stack     at createConfigFile (C:\Users\半旧\Desktop\wz\javawrokspace\renren-fast-vue\node_modules\.pnpm\node-gyp@7.1.2\node_modules\…  
│ gyp ERR! stack     at process.processTicksAndRejections (node:internal/process/task_queues:85:11)
│ gyp ERR! System Windows_NT 10.0.26100
│ gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\半旧\\Desktop\\wz\\javawrokspace\\renren-fast-vue\\node_modules\\.pnpm\\nod…  
│ gyp ERR! cwd C:\Users\半旧\Desktop\wz\javawrokspace\renren-fast-vue\node_modules\.pnpm\node-sass@6.0.1\node_modules\node-sass
│ gyp ERR! node -v v22.14.0
│ gyp ERR! node-gyp -v v7.1.2
│ gyp ERR! Node-gyp failed to build your package.
│ gyp ERR! Try to update npm and/or node-gyp and if it does not help file an issue with the package author.
│ Build failed with error code: 7

核心问题:

Node.js 版本过高
你使用的 Node.js v22.14.0 已超出 node-sass@6.0.1 的兼容范围。node-sass 官方明确表示其最高仅支持到 Node.js 16。

node-gyp 配置冲突
错误 Cannot assign to read only property 'cflags' 表明 node-gyp 在生成构建配置时遇到权限或语法冲突,可能与高版本 Node.js 的模块加载机制不兼容有关。

Windows 编译工具链缺失
node-sass 需要 Visual Studio Build Tools 和 Python 2.x 支持,但新版本 Node.js 默认不再集成这些工具。

(1)开代理。进行如下操作,降级 Node.js 至兼容版本:

# 安装 nvm-windows(需管理员权限)
choco install nvm
# 安装并切换到 Node.js v16
nvm install 16.20.2
nvm use 16.20.2

验证环境:

node -v  # 应显示 v16.x.x
npm -v   # 应显示 6.x.x 或 8.x.x

(2). 替换 node-sass 为 sass

node-sass 已弃用,建议改用官方推荐的 sass(Dart Sass):

卸载旧依赖:

npm uninstall node-sass

安装 sass:

npm install sass --save-dev

修改项目代码:
将所有 node-sass 的引用替换为 sass(例如在 Webpack 或 Vue CLI 配置中)。

(3). 安装 Windows 编译工具链

若仍需使用 node-sass,需补充环境依赖:

安装 Visual Studio Build Tools(网页1、网页4):

  • 勾选「Desktop development with C++」工作负载。
  • 安装 Python 3(从 Python 官网 下载)。

配置环境变量:

npm config set python "C:\Python313\python.exe"
npm config set msvs_version 2022

npm install没有报错.

image-20250307141432665

咱们接下来运行下这个项目。

npm run dev

没有问题。

image-20250307142847402

还挺漂亮的。

image-20250307142923337

4、前后端联调

启动后端,会出现验证码。点击验证码。

image-20250307143317713

验证码刷新,后端会接收到请求消息。

image-20250307143403684

默认管理员账户:admin/admin,登录。

image-20250307143524820

好的,你自己玩玩吧。这节就介绍到这里。后面两节我可能考虑补充下node和npm的知识。也可以考虑使用若依来替换人人开源框架,如果你有这方面的需求。可以评论区留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/29974.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux | Vim 鼠标不能右键粘贴、跨系统复制粘贴

注&#xff1a;本文为 “ Vim 中鼠标右键粘贴、跨系统复制粘贴问题解决方案” 相关文章合辑。 未整理去重。 Linux 入门&#xff1a;vim 鼠标不能右键粘贴、跨系统复制粘贴 foryouslgme 发布时间 2016 - 09 - 28 10:24:16 Vim基础 命令模式(command-mode)插入模式(insert-m…

【JavaWeb】Web基础概念

文章目录 1、服务器与客户端2、服务器端应用程序3、请求和响应4、项目的逻辑构成5、架构5.1 概念5.2 发展演变历程单一架构分布式架构 5.3 单一架构技术体系 6、本阶段技术体系 1、服务器与客户端 ①线下的服务器与客户端 ②线上的服务器与客户端 2、服务器端应用程序 我…

基于云的内容中台核心优势是什么?

弹性云架构赋能资源整合 现代企业通过弹性云架构实现多源数据资源的深度整合&#xff0c;其动态扩展能力可自动适配业务流量波动。基于分布式存储与容器化部署&#xff0c;系统能够无缝对接CRM、ERP等企业软件集成&#xff0c;实现跨平台数据实时同步。值得注意的是&#xff0…

数据库基础练习1

目录 1.创建数据库和表 2.插入数据 创建一个数据库&#xff0c;在数据库种创建一张叫heros的表&#xff0c;在表中插入几个四大名著的角色&#xff1a; 1.创建数据库和表 #创建表 CREATE DATABASE db_test;#查看创建的数据库 show databases; #使用db_test数据库 USE db_te…

亲测解决笔记本触摸板使用不了Touchpad not working

这个问题可以通过FnFxx来解决&#xff0c;笔记本键盘上Fxx会有一个触摸板图标。如果不行应该玉藻设置中关了&#xff0c;打开即可。 解决办法 在蓝牙&#xff0c;触摸板里打开即可。 Turn it on in settings。

Vue23Web 基礎性拉滿的面試題(2025版)還沒更新完...

Vue2&3 基礎性1. 關於Vue2和Vue3生命週期的差別2. Vue2&3組件之間傳參不同點Vue2 傳遞與接收Vue3 傳遞與接收 (使用script setup語法糖)Vue3 傳遞與接收 (不使用script setup語法糖) 3. Vue2&3 keep-alive 組件Vue2 keep-aliveVue3 keep-alive 進階性爲什麽POST請求…

动态ip和静态ip适用于哪个场景?有何区别

在数字化浪潮席卷全球的今天&#xff0c;IP地址作为网络世界的“门牌号”&#xff0c;其重要性不言而喻。然而&#xff0c;面对动态IP与静态IP这两种截然不同的IP分配方式&#xff0c;许多用户往往感到困惑&#xff1a;它们究竟有何区别&#xff1f;又分别适用于哪些场景呢&…

深度学习模型Transformer核心组件—自注意力机制

第一章&#xff1a;人工智能之不同数据类型及其特点梳理 第二章&#xff1a;自然语言处理(NLP)&#xff1a;文本向量化从文字到数字的原理 第三章&#xff1a;循环神经网络RNN&#xff1a;理解 RNN的工作机制与应用场景(附代码) 第四章&#xff1a;循环神经网络RNN、LSTM以及GR…

FreeRTOS 源码结构解析与 STM32 HAL 库移植实践(任务创建、删除篇)

1. FreeRTOS源码结构介绍 1.1 下载源码 ​ 点击官网地址&#xff0c;选择 FreeRTOS 202212.01非 LTS 版本&#xff08;非长期支持版&#xff09;&#xff0c;因为这个版本有着最全的历程和更多型号处理器支持。 1.2 文件夹结构介绍 ​ 下载后主文件 FreeRTOSv202212.01 下包…

【uniapp】图片添加canvas水印

目录 需求&背景实现地理位置添加水印 ios补充 需求&背景 需求&#xff1a;拍照后给图片添加水印, 水印包含经纬度、用户信息、公司logo等信息。 效果图&#xff1a; 方案&#xff1a;使用canvas添加水印。 具体实现&#xff1a;上传图片组件是项目里现有的&#xff…

基于Windows11的DockerDesktop安装和布署方法简介

基于Windows11的DockerDesktop安装和布署方法简介 一、下载安装Docker docker 下载地址 https://www.docker.com/ Download Docker Desktop 选择Download for Winodws AMD64下载Docker Desktop Installer.exe 双点击 Docker Desktop Installer.exe 进行安装 测试Docker安装是…

AI自习室渐兴:人工智能赋能教育新场景的深度剖析

在数字化浪潮席卷全球的今天&#xff0c;教育领域也迎来了前所未有的变革。近年来&#xff0c;AI自习室作为人工智能技术与传统教育融合的产物&#xff0c;在河北等多地悄然兴起&#xff0c;成为学生们的新宠。这一新兴的学习场所&#xff0c;不仅引发了社会的广泛关注&#xf…

Android中AIDL和HIDL的区别

在Android中&#xff0c;AIDL&#xff08;Android Interface Definition Language&#xff09; 和 HIDL&#xff08;HAL Interface Definition Language&#xff09; 是两种用于定义跨进程通信接口的语言。AIDL 是 Android 系统最早支持的 IPC&#xff08;进程间通信&#xff0…

从0开始的操作系统手搓教程23:构建输入子系统——实现键盘驱动1——热身驱动

目录 所以&#xff0c;键盘是如何工作的 说一说我们的8042 输出缓冲区寄存器 状态寄存器 控制寄存器 动手&#xff01; 注册中断 简单整个键盘驱动 Reference ScanCode Table 我们下一步就是准备进一步完善我们系统的交互性。基于这个&#xff0c;我们想到的第一个可以…

【JavaEE】-- 多线程(初阶)4

文章目录 8.多线程案例8.1 单例模式8.1.1 饿汉模式8.1.2 懒汉模式 8.2 阻塞队列8.2.1 什么是阻塞队列8.2.2 生产者消费者模型8.2.3 标准库中的阻塞队列8.2.4 阻塞队列的应用场景8.2.4.1 消息队列 8.2.5 异步操作8.2.5 自定义实现阻塞队列8.2.6 阻塞队列--生产者消费者模型 8.3 …

用Python分割并高效处理PDF大文件

在处理大型PDF文件时&#xff0c;将它们分解成更小、更易于管理的块通常是有益的。这个过程称为分区&#xff0c;它可以提高处理效率&#xff0c;并使分析或操作文档变得更容易。在本文中&#xff0c;我们将讨论如何使用Python和为Unstructured.io库将PDF文件划分为更小的部分。…

Python——计算机网络

一.ip 1.ip的定义 IP是“Internet Protocol”的缩写&#xff0c;即“互联网协议”。它是用于计算机网络通信的基础协议之一&#xff0c;属于TCP/IP协议族中的网络层协议。IP协议的主要功能是负责将数据包从源主机传输到目标主机&#xff0c;并确保数据能够在复杂的网络环境中正…

【MySQL】事务|概念|如何回滚|基本特性|MySQL事务隔离性具体怎么实现的

目录 1.为啥引入 2.是啥 3.如何回滚&#xff08;日志&#xff09; &#x1f525;4.面试题&#xff1a;谈谈事务的基本特性 &#xff08;1&#xff09;原子性 &#xff08;2&#xff09;一致性&#xff08;收入和支出相匹配&#xff09; &#xff08;3&#xff09;持久性…

deepseek 本地部署

deepseek 本地部署 纯新手教学&#xff0c;手把手5分钟带你在本地部署一个私有的deepseek&#xff0c;再也不用受网络影响。流畅使用deepseek&#xff01;&#xff01;&#xff01; 如果不想看文章&#xff0c;指路&#xff1a;Deep seek R1本地部署 小白超详细教程 &#xff0…

⭐算法OJ⭐N-皇后问题 II【回溯剪枝】(C++实现)N-Queens II

⭐算法OJ⭐N-皇后问题【回溯剪枝】&#xff08;C实现&#xff09;N-Queens 问题描述 The n-queens puzzle is the problem of placing n n n queens on an n n n \times n nn chessboard such that no two queens attack each other. Given an integer n, return the num…