javascript 在NextJs中使用2个不同的env变量部署2个不同的prod服务器

f0brbegy  于 2023-04-04  发布在  Java
关注(0)|答案(1)|浏览(431)

在我的Next.js项目中,我尝试将应用的新版本部署到使用来自. env. development的环境变量的开发服务器。下面是我们遵循的过程:
1.开发功能
1.使用next dev在本地测试
1.部署到开发服务器(使用开发环境变量的生产副本)
1.使用next build && next export && next start部署到生产服务器
我的问题是第3步,下一个构建和下一个开始使用.env.production环境变量,这不是我们想要的开发服务器。
我知道Next.js只有三个环境-生产,开发和测试-.env.development用于next dev,.env.production用于next start。
如何使用.env.development环境变量将项目部署到开发服务器上?我尝试过在运行下一次build和下一次start时将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上,但我想避免它。

hc8w905p

hc8w905p1#

Next.js可以执行production构建和development构建,这是非常不同的“模式”,例如development构建包括大量调试信息和热重载。
你实际上需要的是第二个Next.js production构建(即使用.env.production),即使你没有将它部署到你的“生产服务器”,而是部署到另一个服务器,你碰巧称之为“开发服务器”(并且使用不同的环境)。
理论上,你可能希望拥有任意数量的不同环境和/或服务器,这超出了Next.js的处理范围。
您需要自己管理2个不同的.env.production文件,例如使用部署脚本或服务器配置。

相关问题