您认为可以将 Next 13 应用程序用作“包”吗?

问题描述 投票:0回答:1

所以我的问题可能有点愚蠢,因为我不是在谈论 NPM 包。

目前,我的团队在 Next 13 上开发了后端(使用应用程序路由版本)。 到目前为止一切都很好,所以我们开始在前面工作。 我们的后端定向到 /admin,前端定向到应用程序文件夹中的 /(website) 文件夹。 两者都通过 Prisma 连接到数据库。

查看 Next JS 文档,多区域的实现应该可以帮助我们实现让两个独立的应用程序共享同一个数据库的目标。 真正的问题是我们如何在您未来的所有网站上实现 /admin 文件夹,因为我们知道我们想要:

  • 防止将node_modules安装到管理目录中
  • 如果需要,请更新管理目录的版本

目前两个应用程序都位于 /app 文件夹中,这没有问题,但我们希望防止将整个内容推入我们的存储库中。 前端和后端应该是两个独立的实体。

提前谢谢您,

next.js package.json prisma
1个回答
0
投票

你的问题很有趣。所以我也想要这样的东西,我研究并找到了这个解决方案:

确实,Next.js 13 的多区域功能可以帮助您实现拥有两个独立应用程序(前端和后端)同时共享同一数据库的目标。但是,了解如何构建项目和依赖项以满足您的要求非常重要。

这是我认为应该有效的方法:

  • 文件夹结构:您可以将前端(网站)和后端(管理)应用程序保存在项目目录中的单独文件夹中。
/project-root
  /admin
    /pages
    /components
    ...
  /website
    /pages
    /components
    ...
  • 共享数据库逻辑:在前端和后端应用程序之间共享数据库逻辑,您可以创建共享实用程序或服务层。该层可以包含使用 Prisma 处理数据库交互的函数或模块。
// /project-root/shared/database.js
import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

export { prisma };
  • 防止node_modules重复:您可以使用
    .gitignore
    文件来做到这一点:
/project-root/admin/node_modules
/project-root/website/node_modules
  • 之后,您可以随时在单独的存储库中更新管理目录,或者可以将其快速拉到任何新项目:
# Assuming admin is a separate Git repository
cd admin
git pull origin main
© www.soinside.com 2019 - 2024. All rights reserved.