Next的Standalone模式

半兽人 发表于: 2025-06-23   最后更新时间: 2025-06-23 18:59:32  
{{totalSubscript}} 订阅, 85 游览

这是一个 Next.js 专门生成用于部署的精简版本(用于容器部署 / Docker),特点:

  • 只包含运行所需的最小 Node.js 文件(没有源码、没有 webpack 依赖)
  • 可以像普通 Node 项目一样启动:node server.js
  • .next/static.next/cache 不同,它适合用于部署

standalone使用

开启standalone模式,next.config.js:

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

构建时:

next build

会创建一个.next/standalone目录

容器构建

之前是复制 .next 下的内容,例如:

COPY --from=builder /app/web/.next ./.next
COPY --from=builder /app/web/public ./public
COPY --from=builder /app/web/package.json ./package.json

只需要替换.next这行,如下:

# COPY --from=builder /app/web/.next ./.next
COPY --from=builder /app/web/.next/standalone ./  # 改为standalone

变更后的目录:

COPY --from=builder /app/public ./public
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static

注意:运行时通过node server.js命令,因为生成的node_modules中不包含.bin目录,所以没法通过pnpm run start启动(可以通过node_modules/.bin和依赖命令原理了解.bin的作用)。

更新于 2025-06-23
在线,2分钟前登录

查看Next.js更多相关的文章或提一个关于Next.js的问题,也可以与我们一起分享文章