如何正确构建使用 React 的全栈项目?

How to properly structure full-stack project which use React?

我想创建 高级 全栈项目,在客户端使用 React,在服务器端使用 Express.js。哪种文件夹结构做法最好?我想保持简单。该项目可能包含 TypeScript、E2E 和单元测试,它将与服务器端通信 API 并使用 Socket.io 进行实时集成。如果可能的话,我也想保留一份 node_modules 文件和一份 package.json。

I want to keep one node_modules file and one package.json, too, if possible

浏览器中的 React 应用程序 运行 和基于 NodeJS 的 Express 将具有不同的依赖关系。开发依赖项与 Typescript 有一些相似之处,但生产依赖项将截然不同。您可以尝试为客户端和后端保留相同的测试框架,如 Jest,但 Jest 必须驱动的实际测试库将不同,需要不同的 Jest 配置设置。 Typescript 编译器设置可能不同。

所有这些使得 node-modulespackage.json 不切实际,因此您需要在 clientbackend(或 server)子目录中放置两个项目。

另一方面,这两个项目需要彼此紧密集成,以允许无缝的客户端-后端调试甚至涵盖生产构建等。因此,两者都需要在一个顶级项目的保护下,通常称为工作区.

建议查看 crisp-react。我是作者