首页 > 解决方案 > .env 和 next.js 在本地

问题描述

我有 2 个关于.env

.env.local

STAGE=local
API=http://localhost:3333

.env.dev

STAGE=dev
API=https://dev.api.domain.com

我想将它们分开为package.json脚本

我想要的是

"script": {
    "start-local": ".env.local && next",
    "start-dev": ".env.dev && next"
}

标签: environment-variablesnext.js

解决方案


.env您可以通过某些环境变量加载特定文件。

例如:

"script": {
    "start-local": "NODE_ENV=local next",
    "start-dev": "NODE_ENV=dev next"
}

这将定义NODE_ENV环境变量,然后基于它,您可以使用dotenvlib 加载正确的文件。

// next.config.js
const dotEnv = require('dotenv');
const path = require('path');

const envFilePath = path.join(__dirname, `.env.${process.env.NODE_ENV}`); // this will have the path to the proper `.env` file

dotEnv.config({ path: envFilePath }); 

module.exports = {
  ...
} 

推荐阅读