我对Nextjs及其部署过程还很陌生,最近我将我的一个react js项目转换为Nextjs,以便利用Nextjs提供的服务器端呈现特性,现在是部署时间了,我发现如果服务器中没有node_modules
文件夹,Next构建将无法部署。我在页面中使用getServerSideProps
,并在包中使用"build": "next build"
命令进行构建。json。问题是我的node_modules文件夹接近300MB(.next
build会另外增加大约10MB),而且我认为每次部署都附带这么大的负载并不是最佳做法(我打算部署此构建的不同示例,因此310MB X示例数)在服务器中。我在这里做错了什么还是这是完成这件事的唯一方法?我感谢任何答案。谢谢...
3条答案
按热度按时间2guxujil1#
经过一番研究之后,我回答了自己的问题。如果使用
getServerSideProps
,则无法静态导出项目。因此,需要node_modules文件夹才能在服务器上部署项目。这并不意味着必须通过FTP传输node_modules
,您可以在服务器端执行npm构建,将node_modules
下载到部署文件夹。在我的情况下,其中node_modules
文件夹本身约为300MB。jjhzyzn02#
**更新(11/14/22):**前面提到得“输出独立”功能已不再处于试验阶段:
**上一个答案:**最新的Next.js文档提供了一个很好的示例,说明如何创建独立的构建版本,并提供了一个很好的示例,说明如何通过with docker来实现它。
b1payxdu3#
不,您不需要添加
node_modules
。会向您推荐check out the docs关于如何部署Next.js应用程序的信息,但本质上:
next build
next export
out
文件夹(默认输出文件夹,可以更改)或者,您也可以使用Netlify来部署和托管应用程序。