使用lerna为react和node js Web应用程序实现monorepo

时间:2018-10-16 13:12:51

标签: node.js reactjs lerna monorepo

我正在尝试构建一个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应用程序的解决方案

1 个答案:

答案 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服务器。