Как настроить переменные среды для нескольких сред?

Как настроить переменные среды для нескольких сред?

У меня есть приложение Next.js, и в настоящее время у меня есть эта настройка next.config.js для доступа к моему файлу .env при локальной работе, которая прекрасно работает:

 // Initialize doteenv library require("dotenv").config(); module.exports = { webpack: config ={amp}gt; { // Fixes npm packages that depend on `fs` module config.node = { fs: "empty" }; /** * Returns environment variables as an object */ const env = Object.keys(process.env).reduce((acc, curr) ={amp}gt; { acc[`process.env.${curr}`] = JSON.stringify(process.env[curr]); return acc; }, {}); /** Allows you to create global constants which can be configured * at compile time, which in our case is our environment variables */ config.plugins.push(new webpack.DefinePlugin(env)); return config; } }; 

Однако, когда приложение построено в среде live (platform.sh), мне нужно получить доступ к переменным platform.sh вместо моих переменных .env. Platform.sh предоставляет этот фрагмент кода в качестве примера:

 function read_base64_json(varName) { try { return JSON.parse(new Buffer(process.env[varName], 'base64').toString()); } catch (err) { throw new Error(`no ${varName} environment variable`); } }; // A simple variable. let projectId = process.env.PLATFORM_PROJECT; // A JSON-encoded value. let variables = read_base64_json('PLATFORM_VARIABLES'); 

Однако я не уверен, где это использовать и как это работает, чтобы локально он использовал мой файл .env и в реальной среде для использования переменных platform.sh. Каков наилучший способ сделать это?

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector