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