首页 > 解决方案 > 在两个 Next.js 项目之间共享代码需要专家的意见

问题描述

目前,我们的主域 www.example.com 是使用 Angular 4 开发的,其中存在巨大的性能和 SEO 问题。使用 Next.js,我们开发了针对移动用户的 m.example.com,并且我们最近成功上线。现在我们想将我们的主域 www.example.com 迁移到 Next.js,目前 100% 的代码在 API 的使用方面将是相同的。只有设计会改变以适应桌面用户。将来我们可能会引入移动/桌面特定的功能,所以一旦我们完成了迁移,我们希望有两个独立的可部署项目。

您能否让我知道解决此问题并同时实现以下目标的最佳方法是什么?1. 两个 Next.js 项目之间的代码可重用性 2. 两个 Next.js 项目之间的通用组件

标签: next.jsreusability

解决方案


Next.js 没有什么特别的地方,你仍然可以只共享 React 组件。我建议将所有内容都放入monorepo。创建一个包含所有组件的 npm 包,并在 Next.js 项目中使用它们。

你最终会得到这样的项目结构:

packages/myapp-legacy
packages/myapp-mobile
packages/myapp-desktop
packages/ui-components
package.json

使用像lerna这样的工具,你可以在你的 monorepo 中管理多个包。最好的方法是yarn与 lerna 一起使用,因为 lerna支持纱线工作空间功能。


推荐阅读