所以我有一个依赖:
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')
的任何新调用都将使用该模拟,但已加载的任何内容都不会受到影响。