例如,假设我正在不同的环境中部署 Next.js。
以前,我将.env
文件与其中一个框架一起使用,我可以轻松地将文件命名为.env.local
, .env.stage
& .env.prod
,当我在本地运行节点应用程序时,它会加载.env.local
,export STAGE=stage
框架会使用.env.stage
,就像生产时一样。
Next js 中是否有这样的支持,我可以.env
在不同的阶段使用不同的文件。如果支持,那么我将如何指定 Next.js 正在运行哪个阶段。
你可以有不同的环境,只需要遵循这个
用于生产
// .env.production.local
// This file is for production and run with next start or npm run start
// NODE_ENV=production
Run Code Online (Sandbox Code Playgroud)
为了发展
// .env.development.local
// This file is for development and run when next dev or npm run dev
// NODE_ENV=development
Run Code Online (Sandbox Code Playgroud)
用于测试
// .env.test.local
// This file is for tests with jest or cypress for example
// NODE_ENV=test
Run Code Online (Sandbox Code Playgroud)
如果您想了解更多信息,这里是有关 next js 中环境的完整信息
更新:
如果您想在没有下一个标准的情况下运行更多环境,您可以手动执行此操作:
// package.json
"scripts": {
...
"dev:staging": "APP_ENV=staging next dev",
}
...
// next.config.js
require('dotenv-flow').config({
node_env: process.env.APP_ENV || process.env.NODE_ENV ||
'development',
});
const env = {};
Object.keys(process.env).forEach((key) => {
if (key.startsWith('NEXT_PUBLIC_')) {
env[key] = process.env[key];
}
});
module.exports = {
env,
};
Run Code Online (Sandbox Code Playgroud)
当您运行 npm run/yarn dev:staging 时,将加载 .env.staging.local 中的暂存环境,我的参考来自 Flybayer,您可以在此处阅读更多信息
归档时间: |
|
查看次数: |
5813 次 |
最近记录: |