依赖加载和文件系统模拟

Dependency Loading & File System Mocking

本文关键字:系统模拟 文件 加载 依赖      更新时间:2023-09-26

所以我有一个依赖:

dep = require('dep')

如果我在调用 dep 函数之前模拟文件系统,则找不到从中导出 dep 的文件。

mockFs({})
dep.bar() #file where dep exported from not found

如果我在模拟文件之前调用一个函数,则会找到从中导出 dep 的文件。

dep.foo()
mockFs({})
dep.bar() #works

关于什么可以解释这种行为的任何想法?

您的require()调用被缓存,因此dep使用的是真实的文件系统,因为它可能调用了require('fs'),这还没有被模拟。

稍后模拟fs意味着对require('fs')的任何调用都将使用该模拟,但已加载的任何内容都不会受到影响。