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

如何在同一机器运行多台不同配置的Next.js应用实例

解决同一机器运行多个Next.js实例的环境变量冲突问题

核心问题

同时启动多个Next.js开发实例时,默认会共享构建缓存与环境变量上下文,导致后启动实例的环境变量覆盖前者。必须为每个实例配置完全隔离的构建目录,同时确保环境变量仅作用于当前实例进程。

具体解决方案

1. 配置动态构建目录

修改next.config.js,通过专属环境变量指定独立的dist目录,避免通用变量名引发冲突:

module.exports = {
  reactStrictMode: true,
  distDir: process.env.NEXT_DIST_DIR || '.next'
};

2. 启动第一个实例(端口3000)

在独立终端执行以下命令,确保环境变量与构建目录仅作用于当前实例:

API_1=xyz API_2=xyz NEXT_DIST_DIR=.next-1 next dev -p 3000

3. 启动第二个实例(端口3001)

打开新终端执行,保证进程环境完全隔离:

API_1=xzy123 API_2=xyz123 NEXT_DIST_DIR=.next-2 next dev -p 3001

4. 可选:强制禁用跨实例缓存

若仍存在缓存相关冲突,可添加--no-cache参数,让每个实例使用独立缓存上下文:

# 实例1
API_1=xyz API_2=xyz NEXT_DIST_DIR=.next-1 next dev -p 3000 --no-cache

# 实例2
API_1=xzy123 API_2=xyz123 NEXT_DIST_DIR=.next-2 next dev -p 3001 --no-cache

原尝试无效的原因

  • 通用变量名DIR可能被系统或其他进程干扰,改用专属的NEXT_DIST_DIR可避免此问题;
  • 若在同一终端后台启动两个实例,进程环境会共享,必须使用独立终端启动,保证每个实例的环境变量完全隔离。

内容的提问来源于stack exchange,提问作者Matija Kovacek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:25:26