首页 > 解决方案 > Nextjs 在生产中所需的最小文件结构

问题描述

我很难理解部署 nextjs 应用程序的正确方法或最佳方法。我有一个混合 Nextjs 网站,目前托管在 Azure App Service 上。到目前为止我跑

从 Nextjs 文档(在这个主题上有点苗条)来看,似乎这是正确的方法。根据我的理解,.next/生产应该只需要该文件夹,因为它是捆绑代码的文件夹。pages/等等,components/应该只在开发模式下使用。

我还在网上找到了一些其他朝着这个方向发展的例子。如果我尝试删除 /pages 或 /components ,则会出现错误,并且该应用程序无法再运行。

有人可以确认一下 Nextjs 应用程序在生产中所需的最小文件结构是什么吗?

更新:

我得到的错误是第一个: ENOENT: no such file or directory, i18n

当我添加这个文件时,我得到了错误:

ENOENT: no such file or directory, pages/

i18n.js是包的配置文件next-tralsation https://github.com/vinissimus/next-translate

我也在和那里的作者交谈,这可能是他们的问题,但现在我只想知道生产中的混合 Nextjs.js 应用程序是否应该包含pages/文件夹。我想知道.next/文件夹是否足以用于生产部署,如果没有,我想了解原因。

标签: buildnext.jsproduction

解决方案


在官方仓库https://github.com/vercel/next.js/blob/canary/examples/with-docker/Dockerfile.multistage中有一个使用 Docker 的示例

但我想它也适用于非 docker 环境。

基本上,它构建应用程序并在此之后只保留这些文件和文件夹:

  • 包.json
  • next.config.js
  • .env*
  • 上市
  • 。下一个
  • 节点模块

所以不,pages在为 vanilla NextJs 应用程序构建之后不应该需要它,但它可能需要其他的东西,比如next-translate你的例子中的包,我不太确定它是如何使用pages和做什么的。


推荐阅读