Nextjs(App Router) 开发记录

最近业余在开发一款智能助理产品,记录开发过程中的一些问题以备忘,也是帮其他人防坑。

主要技术栈

本项目采用了前沿的技术栈来构建一个高性能且可维护的应用。选择了 Nx 作为构建管理和单一代码库解决方案,通过模块化和插件系统来扩展和优化开发流程、支持续集成。Next.js(App Router模式)为我们提供了服务器渲染和客户端渲染的能力,同时简化了路由配置。项目主要使用 Typescript 编写,这有助于捕捉类型错误并在编译时解决它们。

界面方面,Material UI和Tailwind CSS分别作为UI组件库和原子化CSS样式方案被引入,确保了快速且一致的UI开发体验。为了实现3D图形功能,我们集成了react-three-fiber,它是Three.js的一个 React 绑定。使用 Recoil 进行状态管理,它提供了一个直观的状态管理模型。

接口层,使用Apollo Client 来发送 GraphQL 请求和缓存,并将GraphQL转换为Cypher查询,以便与图数据库Neo4j交互。为了提高开发效率,我们还利用了 GraphQL Code Generator 来自动生成代码。关系数据库读写,采用 Prisma ORM,它可以跨多种数据库环境工作,并提供了强大的类型安全特性。

采用 Next Auth 实现用户认证。为了保证代码质量,我们引入了jest进行单元测试,eslint、commitlint和prettier用于代码风格和提交规范的检查,结合 VSCode 插件实现自动格式化、提交检查。此外,项目还探索了 WebAssembly 和 WebWorker 技术以增强应用性能

Bug 坑

1. Nx 19.6.2 使用 pnpm 初始化失败

执行命令:npx create-nx-workspace --pm pnpm 可生成代码,但无法正常运行。查看错误日志:A project already exists in this directory

通过与npm创建的项目对比,发现缺少 @nx/react

解决pn add -D @nx/react, 之后 nx dev app 可运行

2. pnpm 用 dlx

pn run generate 报错:The "path" argument must be of type string. Received undefined

分析 :实际执行的是 npx prisma generate --schema=./file-path ,可能是 npx 执行时缺少相关包或版本不一致导致。
解决 :改用 dlx, pnpm dlx prisma generate

技巧

1. 自定义 VSCode 折叠显示

.vscode/settings.json中添加:

json 复制代码
  "explorer.fileNesting.enabled": true,
  "explorer.fileNesting.patterns": {
    "*.env": "$(capture).env.*",
    "package.json": ".gitignore,.prettierrc,.prettierignore,.eslintrc.json,.eslintignore,.editorconfig......."
  }

欢迎合作

如果这篇文章对您有所帮助,欢迎点赞、分享和留言,让更多的人受益。感谢您的细心阅读,如果发现了任何错误或需要补充的地方,请随时告诉我,我会尽快处理 ^_^

相关推荐
leeyi3 天前
Workflow 编排:字段映射、数据流分离
langchain·workflow·graphql
leeyi5 天前
Graph 编排:不只是 ReAct 的通用 DAG
react native·agent·graphql
墨香幽梦客8 天前
GraphQL在ERP数据集成中的革命性应用:从N+1查询到批量优化的实践
后端·graphql
喵了几个咪13 天前
Headless 后端实践:基于Go的企业级多栈管理系统脚手架
开发语言·vue.js·后端·golang·reactjs·gowind
qq_4203620315 天前
前端国际化方案
前端·javascript·vue.js·国际化·reactjs
一拳一个娘娘腔16 天前
【SRC漏洞挖掘系列】第10期:GraphQL & API 安全 —— 现代 API 的“裸奔”时代
后端·安全·graphql
hhb_61817 天前
GraphQL实战避坑指南:性能与安全优化
数据库·安全·graphql
linmengmeng_131418 天前
【总结】HugeGraph Client 从 1.2.0 升级到 1.7.0 的 7 个坑
graphql·hugegraph
Maimai1080820 天前
TanStack Table 入门:为什么它是 React 表格开发里的“表格引擎”
前端·javascript·react.js·架构·前端框架·reactjs
Maimai1080820 天前
用 TanStack Table、React Query 和 shadcn/ui 搭一个可维护的数据表格架构
前端·javascript·react.js·ui·架构·前端框架·reactjs