【问题标题】:Does Next js production build need node_modules folder in the server?Next js 生产构建是否需要服务器中的 node_modules 文件夹?
【发布时间】:2021-03-04 21:43:55
【问题描述】:

我对 Next js 及其部署过程相当陌生。我最近将我的一个 react js 项目转换为 Next js,以便利用 Next js 提供的服务器端渲染功能。现在到了部署时间,我发现如果没有服务器中的node_modules 文件夹,下一个构建将无法部署。我在我的页面中使用getServerSideProps 并在package.json 中使用"build": "next build" 命令构建。问题是我的 node_modules 文件夹接近 300MB(.next 构建增加了大约 10MB),我认为每次部署都伴随这么大的重量不是最佳实践(我打算部署此构建的不同实例,因此服务器中有 310MB X 实例数)。 我在这里做错了什么还是这是实现这一目标的唯一方法?我很感激任何答案。谢谢...

【问题讨论】:

    标签: node.js reactjs next.js server-side-rendering


    【解决方案1】:

    经过一番研究,我正在回答我自己的问题。如果您使用getServerSideProps,则无法静态导出您的项目。因此,需要 node_modules 文件夹才能在服务器上部署项目。这并不意味着您必须通过 FTP 访问 node_modules,您可以在服务器端进行 npm 构建,将 node_modules 下载到部署文件夹。在我的例子中,部署文件夹重约 310MB,而 node_modules 文件夹本身约为 300MB。

    【讨论】:

    • 我公司的一个人在没有文件夹的情况下设法做到了,我们正在使用服务器端道具。不知道他用了什么法术。如果我知道了会告诉你
    • @Brandon 有什么消息吗?
    • 也对魔法感兴趣 - @Brandon 有什么更新吗?
    【解决方案2】:

    不,您不需要添加您的node_modules

    会向您推荐 check out the docs 关于如何部署 Next.js 应用程序,但本质上是:

    • 运行next build
    • 运行next export
    • 部署您的out 文件夹(默认输出文件夹,可以更改)

    或者,您也可以使用Netlify 来部署和托管您的应用程序。

    【讨论】:

    • 感谢您的及时答复。但是,我认为如果你使用getServerSideProps,你就不能使用next export
    • vercel.com 是部署 NEXT 的最佳场所,即使您可以将 CI 与 Github 或 Gitab 一起使用
    • 我无法通过做同样的事情来获取不同端口上的后端 api。我哪里错了?
    猜你喜欢
    • 2016-02-13
    • 2020-01-01
    • 2019-05-25
    • 2020-05-03
    • 2018-01-22
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多