У меня есть приложение Next.js, и в настоящее время у меня есть эта настройка next.config.js для доступа к моему файлу .env при локальной работе, которая прекрасно работает:
// Initialize doteenv library
require("dotenv").config();
module.exports = {
webpack: config => {
// 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) => {
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 вместо моих переменных .envPlatform.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. Каков наилучший способ сделать это?