在我的Next.js项目中,我试图将应用程序的新版本部署到使用.env.development环境变量的开发服务器。下面是我们遵循的过程:
- 开发功能
- 使用next dev进行本地测试
- 部署到开发服务器
- 使用下一个构建部署到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
文件,例如使用部署脚本或服务器配置。