2

我正在尝试构建一个 monorepo ,它由一个 react 和 node js 应用程序组成,所以前端文件夹是使用 react app 创建的,后端文件夹包含所有服务器代码。

我已经完成了以下步骤

全局安装 lerna

创建了一个新文件夹并初始化了存储库。

在新文件夹中运行 lerna init,它创建了 2 个文件 lerna.json、package.json 和 1 个文件夹作为包。

在packages文件夹中我运行create-react-app frontEnd,它创建了一个新的react应用程序

运行命令 mkdir backEnd,在 packages 文件夹中创建 backEnd 文件夹

现在我的包文件夹包含两个文件夹 frontEnd 和 backEnd。

前端由 create-react-app 附带的 package.json 组成

问题

我需要从前端文件夹中删除 package.json

我如何在根文件夹中配置 lerna.json 和 package.json。

我怎样才能运行应用程序?

我已经搜索过,但我没有得到使用 create-react-app 使用 lerna 制作 react-nodejs 应用程序的解决方案

4

1 回答 1

1

我在这里做了这个任务

我需要从前端文件夹中删除 package.json

不,文件夹中的每个项目都/packages可能有其依赖项。根安装的模块安装package.json在所有子项目中。当您运行lerna bootstrap时,它将npm install在每个项目上运行。

我如何在根文件夹中配置 lerna.json 和 package.json。

lerna.json非常简单,包含收集 lerna 应该管理的所有项目的配置。

package.json是跟踪所有项目之间的共享包。例如,您可能有一些constant-module在两个项目中必须是相同的版本。在简单的前端/后端中,没有任何共享模块是现实的。

我怎样才能运行应用程序?

当您运行时lerna run start,lerna 将npm run start在所有跟踪的项目上执行。所以你必须知道如何启动你的整个应用程序。

在我的示例中,我start在后端项目中实现了 only,因为它将静态地为前端文件提供服务,并且我不想仅为前端启动另一个 Web 服务器。

于 2020-06-03T15:09:34.163 回答