如何在自托管的Node Js中运行Next.js?

62lalag4  于 2023-06-22  发布在  其他
关注(0)|答案(1)|浏览(180)

我是Next.js的新手,我的目标是通过我的React Web应用程序实现SSR(服务器端渲染)。我想在我自己的VPS**上托管它。
在本地运行它一切都很好,但当我设置一个CI管道时,事情开始变得混乱。
1.我的代码被推送到git repo。
1.这将触发使用next build的构建管道,并生成一个包含.next目录内容的工件,也就是构建输出。
1.工件被部署到VPS上的一个目录(假设在/apps/myapp下)
1.现在我如何使用nodejs运行它?运行next start告诉我缺少.next目录。
这是最大的困惑。所有文档都说部署到服务器并运行next buildnext start,这意味着它将在生产服务器上构建应用程序,这也意味着我需要使用源代码部署它?(我个人觉得这很疯狂)。
是这样做的,还是我错过了什么?

hmtdttj4

hmtdttj41#

好吧,所以我设法做到了,但深入挖掘文档和试验和错误:
我需要将Next.js配置为独立:

const nextConfig = {
  reactStrictMode: true,
  output: 'standalone'
}

module.exports = nextConfig

接下来,在我的管道中,我需要执行以下操作:

# SM.Web is my root of the web project

yarn install

# overwrite your .env with environment specific stuff

echo "NEXT_PUBLIC_API_BASE_URL=https://api.yourawesomeapp.com" >> src/SM.Web/.env

yarn build

cp -R src/SM.Web/public "src/SM.Web/.next/standalone/public"

cp -R src/SM.Web/.next/static" src/SM.Web/.next/standalone/.next/static"

# create artefact

zip src/SM.Web/.next/standalone SM.Web.zip

展开后:
node server.js
我在这里描述了整个过程:
https://dev.to/kedzior_io/deploy-self-hosted-nextjs-application-with-net-api-43p8

相关问题