gpt4 book ai didi

serverless-framework - 使用 serverless-dotenv-plugin 更正 .env 文件

转载 作者:行者123 更新时间:2023-12-05 01:42:41 27 4
gpt4 key购买 nike

我将以下内容用作自定义 serverless-dotenv-plugin 插件配置:


风俗:
dotenv:
路径:.env-${opt:stage, 'local'}

但我真正想得到的是当我不提供任何参数时从 .env 文件加载环境,当我使用时从 .env.staging 文件加载staging 作为 CLI 参数。

我不知道如何在上面的 path 中体现这一点。有什么帮助吗?

最佳答案

我通过使用普通的 dotenv 使您的用例正常工作插件。

在我的 serverless.yaml 中,我根据 stage 参数指定要从文件加载的环境变量(dev 是默认值) :

provider: 
stage: ${opt:stage, 'dev'}
environment:
FOO: ${file(./config.${self:provider.stage}.js):getEnvVars.FOO}
BAR: ${file(./config.${self:provider.stage}.js):getEnvVars.BAR}

然后每个阶段一个文件从正确的 .env 文件加载环境变量:

config.dev.js:

require('dotenv').config({path: __dirname + '/dev.env'});
const config = require('./environmentVariables.js');
module.exports.getEnvVars = config.getEnvVars;

config.production.js:

require('dotenv').config({path: __dirname + '/production.env'});
const config = require('./environmentVariables.js');
module.exports.getEnvVars = config.getEnvVars;

我没有在上述每个配置文件中导出每个环境变量,而是为此创建了一个帮助文件 (environmentVariables.js):

module.exports.getEnvVars = () => ({
FOO: process.env.FOO,
BAR: process.env.BAR
});

最后但同样重要的是包含实际变量的 .env 文件。我将文件命名为 dev.envproduction.env

FOO=foo
BAR=bar

它就像一个魅力,唯一的缺点是每当你想添加一个新的环境变量时,你必须编辑几个不同的文件。

关于serverless-framework - 使用 serverless-dotenv-plugin 更正 .env 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51170451/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com