Next js生产版本是否需要服务器中的node_modules文件夹?

mutmk8jj  于 2022-11-23  发布在  其他
关注(0)|答案(3)|浏览(314)

我对Nextjs及其部署过程还很陌生,最近我将我的一个react js项目转换为Nextjs,以便利用Nextjs提供的服务器端呈现特性,现在是部署时间了,我发现如果服务器中没有node_modules文件夹,Next构建将无法部署。我在页面中使用getServerSideProps,并在包中使用"build": "next build"命令进行构建。json。问题是我的node_modules文件夹接近300MB(.next build会另外增加大约10MB),而且我认为每次部署都附带这么大的负载并不是最佳做法(我打算部署此构建的不同示例,因此310MB X示例数)在服务器中。我在这里做错了什么还是这是完成这件事的唯一方法?我感谢任何答案。谢谢...

2guxujil

2guxujil1#

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

jjhzyzn0

jjhzyzn02#

**更新(11/14/22):**前面提到得“输出独立”功能已不再处于试验阶段:

// next.config.js
module.exports = {
  output: 'standalone',
}

**上一个答案:**最新的Next.js文档提供了一个很好的示例,说明如何创建独立的构建版本,并提供了一个很好的示例,说明如何通过with docker来实现它。

// next.config.js
module.exports = {
  experimental: {
    outputStandalone: true,
  },
}
b1payxdu

b1payxdu3#

不,您不需要添加node_modules
会向您推荐check out the docs关于如何部署Next.js应用程序的信息,但本质上:

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

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

相关问题