0

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

4

1 回答 1

2

快速浏览了一下,这里有一个 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文件。

于 2016-08-21T20:03:30.090 回答