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