.env не работает с AVA

Я получаю следующую ошибку, когда пытаюсь запустить свои тесты, используя ava с моим проектом, который использует dotenv-safe

{ [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

1 ответ

Решение

Took a quick look, here's a PR that gets things working: https://github.com/sibelius/koa-env-ava/pull/1

What was happening was that dotenv-safe did not know where to find your .env а также .env.example files, so it would look in the src directory and throw an error. Я переписал твой src/config.js file to automatically look in your project root directory:

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 knows where to load your .env files from.

Другие вопросы по тегам