.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.