当我尝试使用带有使用dotenv-safe的项目的ava运行我的测试时,我收到以下错误
{ [Error: ENOENT: no such file or directory, open '.env'] errno: -2, code: 'ENOENT', syscall: 'open', path: '.env' }
fs.js:549
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT: no such file or directory, open '.env.example'
看起来ava没有找到.env或.env.example文件
是否有针对此的解决方法或解决方案?
这是一个可以轻松重现问题的回购:https://github.com/sibelius/koa-env-ava
答案 0 :(得分:2)
快速浏览一下,这是一个让事情有效的公关:https://github.com/sibelius/koa-env-ava/pull/1
发生的事情是dotenv-safe
不知道在哪里找到.env
和.env.example
文件,因此会查看src
目录并抛出错误。我重新编写了src/config.js
文件,以自动查看项目根目录:
const root = require('path').join.bind(this, __dirname, '..');
require('dotenv-safe').load({
path: root('.env'),
sample: root('.env.example')
});
export const API_URL = process.env.API_URL;
export const SERVER_PORT = process.env.SERVER_PORT;
这种方式dotenv-safe
知道从哪里加载.env
文件。