【化蛹为蝶三】Nextjs 项目目录结构

2024-01-04 19:50
文章标签 项目 结构 目录 nextjs

本文主要是介绍【化蛹为蝶三】Nextjs 项目目录结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上篇 我们唠了唠 Nextjs 项目如何使用 TypeScript、如何引入 Antd

还做了些预告,虽然咳咳…直接断更了 12 天

不过中间是去 la 了个双眼皮儿,休养带恢复了好些天,今儿就麻溜儿回来了

誓不烂尾

嗯~ o( ̄▽ ̄)o

今儿也不多更,保持每篇能聚焦一两个点就可

今天讲述下我从零到现在搭起来的 Nextjs 个人项目调整了三次的项目目录结构

嗯,以下正文

项目目录结构

初始目录

我在刚刚创建项目时,使用的是默认目录结构

手动罗列一下,大致如下:
image

调整一

在接入了 Koa,使用 Prisma 连接了 Mysql、Redis ,写了登录 JWT 前后端交互后,目录的合理性就凑合起来了

因为是同构架构,然后 config 和 utils 就有了一种现象:服务端/客户端依赖的配置或工具函数代码都放在一起,就很怪

而且接入 Koa 后增加 了一个文件:server.js

所以根据端的不同,对配置和代码进行了分割,此时项目目录如下:
carbon (9).png

主要是把 server 侧的目录归整了下,增加了 server 目录

然后把接口鉴权的中间件,服务端的数据库配置以及工具包都纳入了 server

Prisma 数据库 Schema 还留在外侧,没调整,server.js 决定会一直留在外侧

调整二
后来引入了 Graphql(apollo-server、apollo-client),外侧又多了一个服务端目录
carbon (8).png

也还好,然后随着数据模型多起来,愈来愈不方便尤其是 Graphql 太烦了我需要在四个目录分别新增对应模型目录和文件

所以第二次调整主要针对 Graphql ,顺带着把 Prisma、Graphql 和 Logs 目录扔进了 server,此时项目目录结构如下:
carbon (7).png

调整三

接下来就是看外侧目录些许不顺眼,比如外侧的 config 可能会被以为是整个项目的 config(但实际只是 client 的配置)

那同理 utils 也会被视为项目的工具,自然就增加了 client 目录以视区分,如下所示:

carbon (6).png

可… 可… 可是我看外侧的 components 和 styles 肯定更不顺眼了(难不成你俩不属于 client 的?)

那必然的,client 目录归整了一下,可惜 pages 目录由于 Nextjs 有依赖引用问题目录位置不能调整

所以到直到当下,个人 Nextjs 项目目录结构如下所示:
carbon (4).png

haha,顺手把 utils 目录改了名叫 tools

呐,今天关于 Nextjs 项目目录结构的分享就到这里了,感兴趣的小伙伴阔以关注一波,感恩感恩

后续预告:

  • 梳理一些小问题如:@根路径 Import引入 Less引入 KoaYaml 解析引入 Reset CSS日志记录与存储
  • 单独出一篇 Nextjs 引入 PrismaMysql2 存取数据
  • 单独出一篇 Nextjs 引入 Apollo-Server/Apollo-Client 使用 Graphql
  • Nextjs + Prisma + Graphql Demo 实践
  • Nextjs 如何使用 SessionCookie
  • Nextjs 基于 Graphql、PrismaJWT 登录鉴权

预告里的实操都做的差不多了,就差填坑了

今天就先填个小坑

另外可以小瞄下掘金前面发的

埋坑不断,也在不断填坑,诸君下期再见

Please follow me ^_^

vx👦:mmm7nnn

公号🐓:醒途

邮箱📧:suanzao@wacai.com(欢迎找我内推)

如果喜欢这个系列请给我一个点赞👍或者一个关注➕,诸君的支持是我创作的最大的动力

这篇关于【化蛹为蝶三】Nextjs 项目目录结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/570417

相关文章

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

Python循环结构全面解析

《Python循环结构全面解析》循环中的代码会执行特定的次数,或者是执行到特定条件成立时结束循环,或者是针对某一集合中的所有项目都执行一次,这篇文章给大家介绍Python循环结构解析,感兴趣的朋友跟随... 目录for-in循环while循环循环控制语句break语句continue语句else子句嵌套的循

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热