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

重构谷粒商城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的知识。也可以考虑使用若依来替换人人开源框架,如果你有这方面的需求。可以评论区留言。

相关文章:

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

谷粒商城09——人人开源框架的快速入门 前言&#xff1a;这个系列将使用最前沿的cursor作为辅助编程工具&#xff0c;来快速开发一些基础的编程项目。目的是为了在真实项目中&#xff0c;帮助初级程序员快速进阶&#xff0c;以最快的速度&#xff0c;效率&#xff0c;快速进阶…...

用友 U8出入库查询SQL 连接UNION ALL

-- 销售出库单查询 SELECT 销售出库单 AS 单据类型, a.cCode AS 单号, a.dDate AS 日期, a.cMaker AS 制单人, a.cHandler AS 审核人, a.dVeriDate AS 审核日期, b.cInvCode AS 存货编码, b.iQuantity AS 数量, b.cBatch AS 批号, c.…...

【大模型】WPS 接入 DeepSeek-R1详解,打造全能AI办公助手

目录 一、前言 二、WPS接入AI工具优势​​​​​​​ 三、WPS接入AI工具两种方式 3.1 手动配置的方式 3.2 Office AI助手 四、WPS手动配置方式接入AI大模型 4.1 安装VBA插件 4.1.1 下载VBA插件并安装 4.2 配置WPS 4.3 WPS集成VB 4.4 AI助手效果测试 4.5 配置模板文…...

Neo4j 数据库备份

将包括系统数据库在内的所有数据库的最近备份存储在一个安全的位置是非常重要的。这确保了在发生数据丢失或损坏时&#xff0c;能够迅速恢复数据库到最近的状态&#xff0c;减少可能的业务影响。对于不同的数据库环境&#xff08;开发、测试或生产&#xff09;&#xff0c;根据…...

配置 Thunderbird 以使用 QQ 邮箱

配置 Thunderbird 以使用 QQ 邮箱 本片文章的操作系统为 windws 10 &#xff0c;thunder bird 客户端版本为 128.7.1esr(64位)。注意到其他文章的图片中 thunder bird 的 ui 界面和我这个不一样&#xff0c;导致看起来不太方便&#xff0c;所以这里写一篇博客。不同版本的 thu…...

Hadoop安装文件解压报错:无法创建符号链接。。。

您可能需要管理员身份运行winRAR; 客户端没有所需的特权&#xff1b; cmd进入该目录下&#xff0c;输入命令(本地解压)&#xff1a;start winrar x -y hadoop-2.10.1.tar.gz...

C++蓝桥杯皮亚诺曲线距离求解

C蓝桥杯皮亚诺曲线距离求解 一、题目概述二、解题分析2.1解题思路2.2k值范围限制 三、实现代码四、代码测试4.1蓝桥杯测试平台4.2直接传入原始输入的k值4.3限制k值大小4.4pow函数求整数高次幂存在误差4.5满分代码 附录error: ‘long long int y1’ redeclared as different kin…...

【语料数据爬虫】Python爬虫|批量采集工作报告数据(1)

前言 本文是该专栏的第4篇,后面会持续分享Python爬虫采集各种语料数据的的干货知识,值得关注。 在本文中,笔者将主要来介绍基于Python,来实现批量采集“工作报告”数据。同时,本文也是采集“工作报告”数据系列的第1篇。 采集相关数据的具体细节部分以及详细思路逻辑,笔…...

【音视频】ffmpeg命令提取像素格式

1、提取YUV数据 提取yuv数据&#xff0c;并保持分辨率与原视频一致 使用-pix_fmt或-pixel_format指定yuv格式提取数据&#xff0c;并保持原来的分辨率 ffmpeg -i music.mp4 -t "01:00" -pixel_format yuv420p music.yuv提取成功后&#xff0c;可以使用ffplay指定y…...

6-langchang多模态输入和自定义输出

6-langchang多模态输入和自定义输出 多模态数据输入urlbase64url list工具调用自定义输出: JSON, XML, YAML如何解析 JSON 输出json如何解析xmlYAML解析器多模态数据输入 这里我们演示如何将多模态输入直接传递给模型。我们目前期望所有输入都以与OpenAI 期望的格式相同的格式…...

STM32上跑SimpleFOC,电流环、速度环、位置环、棘轮软硬件全开源

引入 我之前写过不少SVPWM、FOC的介绍文章&#xff0c;比如&#xff1a; SVPWM算法原理及详解 从电机本质到park变换再到SVPWM&#xff0c;SVPWM代码实现 电机FOC算法的解释 FOC和SVPWM的C语言代码实现 simple foc可以看成是他们的简化版本。本来simple foc是跑在arduino上的…...

智慧锂电:开启能源新时代的钥匙

在科技日新月异的今天&#xff0c;智慧锂电正以其独特的魅力&#xff0c;引领着能源领域的新变革。智慧锂电不仅革新了传统电池技术&#xff0c;更以其智能化、高效化的特性&#xff0c;成为推动能源管理现代化的重要力量。 智慧锂电项目&#xff1a;点亮绿色转型之路 智慧锂电…...

密码学 网络安全 科普 网络安全密码技术

网络加密包括密码技术和网络加密方法两个方面。 一、 密码技术   密码技术一般分为常规密码和公钥密码。   常规密码是指收信方和发信方使用相同的密钥&#xff0c;即加密密钥和解密密钥是相同或等价的。比较著名的常规密码算法有DES及其各种变形、IDEA、FEAL、Skipjack…...

C# BlockingCollection

什么是 BlockingCollection<T>主要特点构造函数常用方法生产者操作消费者操作 示例代码注意事项串口接收底层存储的类型线程安全和并发访问串口数据接收的顺序性关键点 BlockingCollection<T> 是 C# 中一个非常有用的线程安全集合类&#xff0c;位于 System.Coll…...

学习笔记11——并发编程之并发关键字

并发关键字 synchronized关键字 在应用Sychronized关键字时需要把握如下注意点&#xff1a; 1.一把锁只能同时被一个线程获取&#xff0c;没有获得锁的线程只能等待&#xff1b; 2.每个实例都对应有自己的一把锁(this),不同实例之间互不影响&#xff1b;例外&#xff1a;锁…...

2.2 Windows本地部署DeepSeek模型 --- Ollama篇(下)

2.3Ollama加载已下载Deepseek模型 无网络连接&#xff0c;直接通过Ollama本地已经本地已经下载好的的Deepseek模型。 2.3.1 查看已安装模型 PS C:\Users\Administrator> ollama list NAME ID SIZE MODIFIED deepseek-r1:8…...

DeepSeek R1-32B医疗大模型的完整微调实战分析(全码版)

DeepSeek R1-32B微调实战指南 ├── 1. 环境准备 │ ├── 1.1 硬件配置 │ │ ├─ 全参数微调:4*A100 80GB │ │ └─ LoRA微调:单卡24GB │ ├── 1.2 软件依赖 │ │ ├─ PyTorch 2.1.2+CUDA │ │ └─ Unsloth/ColossalAI │ └── 1.3 模…...

mysql的锁--一篇读懂所有锁机制

目录 mysql的锁 概述&#xff1a;根据mysql锁的大类型可以分为 我们先来讲一下范围最大的全局锁 使用 为什么要使用全局锁&#xff1f; 使用全局锁进行备份的缺点 表级锁 表锁 1.共享读表锁的语法 2.排斥写表锁 元数据锁 意向锁 什么是意向锁 怎么产生意向锁 意向…...

LTC6804、LTC6811、LTC6813的使用

FSEC自制BMS第一步&#xff1a;从零开发使用LTC6804采集电池电压 LTC6811特性 LTC6811 是 LTC6804 的引脚兼容型升级器件&#xff0c;LTC6804官方已经不推荐选用 可测量多达 12 节串联电池 1.2mV 最大总测量误差 可堆叠式架构能支持几百个电池 内置 isoSPI™ 接口 可在 290μ…...

linux内存页块划分及位图存储机制

page_alloc.c - mm/page_alloc.c - Linux source code v5.4.285 - Bootlin Elixir Cross Referencer 一. 什么是页块&#xff08;Pageblock&#xff09;&#xff1f; 定义&#xff1a;页块是物理内存中的一个连续区域&#xff0c;由 2^pageblock_order 个物理页&#xff08;Pag…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...