javascript - 使用 dotenv 未定义的环境变量
问题描述
我有一个文件连接到Contentful
使用我的特定space
和accessToken
. 最近,我决定使用包将其隐藏keys
到.env
文件中dotenv
。这是我的文件的样子:
import {createClient} from 'contentful';
require('dotenv').config();
//console.log('space = ', process.env.CONTENTFUL_SPACE);
const client = createClient({
space: process.env.CONTENTFUL_SPACE,
accessToken: process.env.CONTENTFUL_TOKEN
});
export default client;
出于某种原因,这些env
变量以未定义的形式出现。目前,我的.env
文件位于根目录下。这是我的项目的文件结构:
project
client
src
service
client.js <-- The file I pasted above
node_modules
.env
package-lock.json
package.json
我尝试过的事情:
- 卸载
dotenv
并重新安装它 - 删除
node_modules
文件夹并重新安装所有依赖项 .env
将文件移动到文件所在的文件service
夹下client
- 在文件中使用了
REACT_APP_*
我的环境变量的前缀.env
- 在
config
调用中指定路径
所有这些解决方案都来自其他stackoverflow
问题。几天来,我一直在坚持这个问题,在列出的解决方案中循环并寻找其他解决方案,但仍然没有弄清楚为什么我无法访问我的env
变量!
解决方案
因此,我尝试按照您构建示例项目的方式构建示例项目,但没有成功。我将 .env 文件移到 /service 文件夹下,它起作用了。我的猜测是,要求 dot env 文件应该位于包装项目的主文件(根目录中的主文件)以及 .env 文件中。
推荐阅读
- ruby-on-rails - 在选择后使用 where 搜索子句
- excel - 如何阅读声明数组大小?
- pandas - 过滤每个 ID 的特定变量中具有相同值的行 - Pandas
- java - 这段代码有什么问题?(多数据源 Oracle)
- java - Java中的显示列表
- web-crawler - 什么是“Bytespider”用户代理?
- curl - 相当于 cURL 的请求返回错误
- visual-studio - UWP - SignTool 错误:未找到符合所有给定条件的证书
- android - FusedLocationProviderClient 和唤醒锁
- python - 如何使用 fbs 在 pyqt5 应用程序中包含 exe