You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何本地部署Next.js应用且不暴露源代码?

如何构建并部署Next.js应用且不暴露源代码

Next.js和纯React应用的部署逻辑不同,不能仅复制.next文件夹,以下是完整的无源码部署步骤:

1. 本地执行生产构建

在开发环境中运行构建命令,生成生产环境产物:

npm run build
# 或 yarn build

执行完成后,项目根目录会生成.next文件夹(核心构建产物),如果有静态资源还会保留public文件夹。

2. 整理部署所需文件

仅保留运行必需的文件,彻底排除所有源码文件(如src、pages、app、.tsx/.jsx源码文件):

  • 必需文件:.next文件夹、public文件夹(若有)、package.json、next.config.js(若有自定义配置)、.env.production(若使用环境变量)
  • 优化package.json:删除devDependencies字段,只保留dependencies和scripts中的start命令,避免暴露开发依赖信息。

3. 服务器端准备与部署

  • 确保服务器安装了与开发环境版本一致的Node.js(建议指定具体版本,避免兼容性问题)
  • 将整理好的文件上传至服务器
  • 安装生产依赖:
    npm install --production
    # 或 yarn install --production
    
  • 启动生产服务器:
    npm start
    # 或 yarn start
    
    默认监听3000端口,如需修改端口可通过环境变量指定:
    # Linux/macOS
    PORT=80 npm start
    # Windows
    set PORT=80 && npm start
    

4. 进阶优化:Standalone模式(推荐)

如果希望进一步简化部署并减少依赖安装步骤,可在next.config.js中开启独立构建模式:

module.exports = {
  output: 'standalone',
}

重新执行npm run build后,会生成.next/standalone文件夹,该文件夹包含了所有运行所需的编译后代码和依赖包。部署时只需上传.next/standalone、.next/static、public文件夹,无需再安装依赖,直接通过以下命令启动:

node .next/standalone/server.js

注意事项

  • 绝对不要将任何源码文件上传至服务器,仅保留构建产物和必要配置
  • 若使用反向代理(如Nginx),需配置代理规则将请求转发至Next.js服务器端口,并为静态资源设置缓存策略

内容的提问来源于stack exchange,提问作者Mohammed Saber

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 12:53:11