.env 不适用于 AVA
.env do not work with 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
快速浏览一下,这是一个可以正常工作的 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
文件。
当我尝试 运行 我的测试使用 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
快速浏览一下,这是一个可以正常工作的 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
文件。