javascript - .env 不适用于 AVA

标签 javascript testing filesystems ava

当我尝试对使用 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

最佳答案

快速浏览一下,这是一个让一切正常运行的 PR: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 文件。

关于javascript - .env 不适用于 AVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39065075/

相关文章:

perl - 为什么Perl的两个arg公开似乎剥夺了换行符?

javascript - 如何通过id正确拼接数组项

Linux - 无法删除存在的目录

linux - 在 VFS 之上缓冲

C++如何测试函数使其抛出错误?

ruby-on-rails - 尝试通过 rspec 测试失败

java - 部署和运行 Java WAR 文件的最快方法?

javascript - 如何从 javascript 中的项目列表创建字典列表?

javascript - jQueryUI IE8 对象不支持此属性或方法

javascript - 在 AngularJS 中使用 showType