我是新来的React,并且正在尝试创建一个使用react,node和express的项目。在设置问题时,我自己做出了正确反应,因此我决定使用create-react-app。
我在网上找到了一堆教程,其中许多教程似乎建议将前端和后端分成不同的目录,从而产生两个package.json。
所以项目结构看起来像这样:
Root
|
------client
| |
| -------package.json with front end dependencies
|
package.json with the back end dependencies
客户端目录是使用“ npm init react-app”创建的目录,还包含具有react-scripts的package.json。当前,如果我在客户端目录中使用命令“ npm run build”,它将在根文件夹中创建一个没有后端文件的构建,并且如果我在根文件夹中使用“ npm run build”,则它将不起作用,因为我没有该package.json中的create-react-app脚本。
我的主要问题是,如果我有两个package.jsons,并且将前端和后端这样拆分是正常/最佳实践,我将如何构建项目?
任何建议将不胜感激。
答案 0 :(得分:0)
我认为您必须将CRA(create-react-app)和后端服务器(express)分开。 这意味着您必须在不同的端口上前后运行,然后制作一个可以前后运行的npm脚本。
喜欢这个。
ROOT / package.json
"client": "cd client && yarn start",
"server": "nodemon server.js",
"dev": "concurrently --kill-others-on-fail \"yarn server\" \"yarn client\""
答案 1 :(得分:0)
此文件夹结构是最常用的结构之一。您实际上是在分离前端和后端,这将导致可伸缩的体系结构。
要通过一个命令来构建项目,您需要安装依赖项concurrently
。它将一次启用多个命令。然后更改您的根package.json
。
下面是一个示例package.json
:
"scripts" : {
"build-client": "npm run build --prefix <FRONTEND_FOLDER NAME>",
"build": "<YOUR SERVER BUILD COMMAND>",
"build-project" : "concurrently \"npm run build\" \"npm run build-client\""
}
希望有帮助!