dotenv 文件未在节点 cli 脚本中读取

问题描述

我在节点 cli 脚本文件夹中创建了一个 .env 文件。我正在尝试使用 process.env.MY_VARIABLE 加载我在其中定义的变量,但我注意到它们未定义。

目前这是我的 cli 脚本的 index.js 文件中的代码

#!/usr/bin/env node

const fb = require('facebook-chat-api'); 

//debug only 
console.log(process.env.FB_EMAIL,process.env.FB_PWD)

let credentials = { email: process.env.FB_EMAIL,password: process.env.FB_PWD }

fb(credentials,(err,api) => {
     if(err) return console.log(err);
     console.log(api);
});

这是我的 .env 文件内容,它位于 package.json 文件和 index.js 的同一目录中

FB_EMAIL="some@email.com"
FB_PWD="apasswprd"

我错过了什么吗?

解决方法

你是如何加载 .env 文件的? .env 到 process.env 的映射不会自动发生。您可以查看 https://www.npmjs.com/package/dotenv 以将 .env 文件加载给您 process.env

另一种方法是在您运行该 cli 工具的环境中使用 FB_EMAILFB_PWD。你可以试试你的终端 export FB_EMAIL=****