【问题标题】:How to list all variables listed in a dot env file (e.g: .env.local.example)如何列出点 env 文件中列出的所有变量(例如:.env.local.example)
【发布时间】:2021-04-05 08:39:23
【问题描述】:

我想遍历 .env.local.example 中定义的环境变量列表(在 Node.js 中),不加载这些变量。 (它们不能替换现有的变量)

所以,我基本上想读那些,我应该使用 dot-env 特定工具,还是我可以简单地获取任何 YAML 解析器?

我不关心值,我只关心.env.local.example 文件中的键。

因此,给定以下 .env.local.example:

FAUNADB_SERVER_SECRET_KEY=
MAGIC_AUTH_SECRET_KEY=

我想得到一个字符串数组['FAUNADB_SERVER_SECRET_KEY', 'MAGIC_AUTH_SECRET_KEY']

【问题讨论】:

  • 请说明拒绝投票的原因。
  • 可能问题不清楚。
  • 我试图澄清这个问题。
  • 我对dotenv了解不多,但我知道这种格式不是YAMLdocs 从来没有提到“YAML”这个词。
  • @Vadorequest 我已经更新了我的答案,使用该解决方案将避免替换现有的环境变量。

标签: node.js yaml dotenv


【解决方案1】:

如果您不想加载 .env.local.example 以避免替换现有变量。

在正则表达式的帮助下尝试使用fs

这是一个例子:

const fs = require('fs');
const path = require('path');

let arr_env = fs.readFileSync(path.join(__dirname, '.env.local.example'), 'utf-8').match(/^[A-Za-z0-9_]+/gm);
console.log(arr_env);

// Expected Result: ['FAUNADB_SERVER_SECRET_KEY', 'MAGIC_AUTH_SECRET_KEY']

【讨论】:

    【解决方案2】:

    你可以试试

    Console.log(Object.keys(process.env))
    

    但是要小心,本地系统也会添加额外的变量(比如 vsCode 也添加了一些不同的东西,这些东西也添加到了 process.env 中),所以你可能也会从你的系统中获得额外的变量。

    【讨论】:

    • 谢谢,但这不会满足我的要求。确实会有很多噪音,这是不可预测的。 :)
    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 2017-07-04
    • 2017-06-24
    • 2016-01-18
    • 1970-01-01
    • 2016-02-02
    • 2011-01-31
    • 1970-01-01
    相关资源
    最近更新 更多