Next.js 未正确设置 NODE_ENV

nic*_*ick 5 environment-variables reactjs next.js

我正在尝试在不同的 NODE_ENV 中运行我的 cypress 集成测试。这样做的原因是因为我希望我的测试使用与开发中使用的 API 不同的 api。

目前我正在通过检查设置 api url NODE_ENV,然后以这种方式设置 url。

if(process.env.NODE_ENV === 'development') {
    BASE_URL = 'http://localhost:3001' 
} else {
    BASE_URL = 'https://api.example.com'
}
Run Code Online (Sandbox Code Playgroud)

当我启动 Next 服务器进行 cypress 测试时,我设置 NODE_ENV 进行测试。

"ci:start": "set NODE_ENV='test' & next start",
"ci": "cypress run"
Run Code Online (Sandbox Code Playgroud)

即使设置后NODE_ENV,它也始终显示为“应用程序内部开发”。

我还查看了文档并按照其中的说明进行操作。它说:

当使用 jest 或 cypress 等工具运行测试时,您只需要设置特定的环境变量以用于测试目的。如果 NODE_ENV 设置为 test,则将加载测试默认值。

然而,情况并非如此,因为 .env.local 仍在加载并且NODE_ENV不会改变。

任何帮助将不胜感激,谢谢。