在NextJs中部署2个不同的prod服务器和2个不同的env



在我的Next.js项目中,我试图将应用程序的新版本部署到使用.env.development环境变量的开发服务器。下面是我们遵循的过程:

  1. 开发功能
  2. 使用next dev进行本地测试
  3. 部署到开发服务器
  4. 使用下一个构建部署到prod服务器&&下次出口&&接下来开始

我的问题是第3步,下一个构建和下一个启动使用.env.production环境变量,这不是我们想要的开发服务器。

我知道next .js只有三个环境-生产,开发和测试-.env.development用于下一个开发,.env.production用于下一个启动。

如何将项目部署到开发服务器使用.env.development环境变量?我试过在运行下一次构建和下一次启动时将NODE_ENV环境变量设置为development,但它仍然使用.env.production环境变量。

这是我尝试过的

package.json

"scripts": {
"build:dev": "NODE_ENV=development next build && next export",
"start:dev": "NODE_ENV=development next start"
}```

我不能改变过程,所以我需要找出一个解决方案,如果没有开箱即用的解决方案,我将改变部署管道,将.env.development复制到.env.production上,但我想避免它。

Next.js可以做production构建和development构建,这是非常不同的"模式",例如development构建包括许多调试信息和热重新加载。

你真正需要的是第二个Next.jsproduction构建(即使用.env.production),即使你没有将它部署到你的"生产服务器"上。而是到另一个服务器上,你称之为"开发服务器";(和不同的环境)。

因为理论上你可能想要有任意数量的不同环境和/或服务器,这是Next.js无法处理的。

你需要自己管理2个不同的.env.production文件,例如使用部署脚本或服务器配置。

最新更新