Javascript 开玩笑不';t加载环境变量(即使使用--setupFiles dotenv/config)
我正在为我的Express项目编写测试,但是当我运行测试脚本时,没有加载环境变量 在其他线程中,人们建议使用Javascript 开玩笑不';t加载环境变量(即使使用--setupFiles dotenv/config),javascript,node.js,express,jestjs,dotenv,Javascript,Node.js,Express,Jestjs,Dotenv,我正在为我的Express项目编写测试,但是当我运行测试脚本时,没有加载环境变量 在其他线程中,人们建议使用--setupFiles dotenv/config,我这样做了,但不幸的是,它没有起作用。我尝试将它添加到测试脚本和jest.config.js文件中,但都没有成功。有人对如何解决这个问题有任何提示吗 上下文 这就是我如何在package.json上设置jest的方法: "scripts": { "test": "jest --w
--setupFiles dotenv/config
,我这样做了,但不幸的是,它没有起作用。我尝试将它添加到测试脚本和jest.config.js
文件中,但都没有成功。有人对如何解决这个问题有任何提示吗
上下文
这就是我如何在package.json上设置jest的方法:
"scripts": {
"test": "jest --watchAll --setupFiles dotenv/config"
},
"jest": {
"testEnvironment": "node"
},
在我的app.js
文件的顶部,我用
require('dotenv').config()代码>
这是我的文件夹结构:
看看这个。将env变量传递到以下表达式时,需要同时执行和:
cross-env NODE_ENV=production node -r dotenv/config ./build/srv/main.js
或者,兄弟姐妹仅使用交叉环境
披露:我是上述“crisp”项目的作者。通过将.env
文件从src/
文件夹移动到根文件夹来修复它 crossenv不是要解决平台兼容性问题吗?如果我错了,请纠正我,我只是不知道这有什么帮助。当我运行服务器时会加载环境变量,而不仅仅是在我运行测试时才会加载。此条目(来自package.json
的scripts
部分):“test”:“cross env NODE_env=test jest”
仅在通过执行纱线测试运行测试时才会加载环境变量。