我正在尝试构建一个monorepo,它由一个react和node js应用程序组成,因此,使用react app创建的frontEnd文件夹和包含所有服务器代码的backEnd文件夹。
我已完成以下步骤
在全球范围内安装lerna
创建了一个新文件夹并初始化了存储库。
在新文件夹中运行lerna init,该文件创建了2个文件lerna.json,package.json和1个文件夹作为包。
在packages文件夹中,我运行create-react-app frontEnd,它创建了一个新的react应用程序
运行命令mkdir backEnd,在packages文件夹中创建backEnd文件夹
现在我的packages文件夹由两个文件夹frontEnd和backEnd组成。
frontEnd包含一个package.json,它带有create-react-app
问题
我是否需要从frontEnd文件夹中删除package.json
我如何在根文件夹中配置lerna.json和package.json。
我如何运行该应用程序?
我已经搜索过,但是我没有找到使用lerna使用create-react-app构建react-nodejs应用程序的解决方案
答案 0 :(得分:1)
我完成了这项任务here
我是否需要从frontEnd文件夹中删除package.json
否,/packages
文件夹中的每个项目可能都有其依赖项。根package.json
中安装的模块已安装在所有子项目中。当您运行lerna bootstrap
时,它将在每个项目上运行npm install
。
我如何在根文件夹中配置lerna.json和package.json。
lerna.json
非常简单,并且包含用于收集lerna应该管理的所有项目的配置。
package.json
用于跟踪您所有项目之间的共享软件包。例如,您可能有一些constant-module
,两个项目上的版本必须相同。
在简单的fontend / backend中,没有任何共享模块是很现实的。
我如何运行该应用程序?
当您运行lerna run start
时,lerna将在所有跟踪的项目上执行npm run start
。因此,您必须知道如何启动整个应用程序。
在我的示例中,我仅在后端项目中实现了start
,因为它将静态地服务于前端文件,并且我不想仅为前端启动另一个Web服务器。