在我的Node.js项目中,我安装了passport
软件包以及我自己的config/passport.js
文件,其中包含Passport策略配置以及config/config.js
中的app config。
我将NODE_PATH
设置为app:config
(我在Ubuntu 16.04上),所以当我使用Node运行我的应用时,我可以require('passport')
执行Passport.js包和还要require('config')
要求我的应用配置。
到目前为止一切顺利,但是当我使用Jest运行测试并将modulePaths
设置为app
和config
时,require('passport')
调用会解析为config/passport.js
(你可以想象)崩溃的应用程序。
为什么Jest在modulePaths
需要包裹之前会查看node_modules
?这怎么可以解决?我尝试将node_modules
添加到Jest的modulePaths
,但它造成了更多麻烦而不是解决。
我试着查看Jest的代码但没有结果。
答案 0 :(得分:0)
所以Jest只是按照我描述的顺序加载模块。
对于任何解决类似问题的人来说 - 这应该不再是问题,因为我创建了一个问题,PR被批准并合并到Jest的主人。
https://github.com/facebook/jest/issues/5377
它现在是Jest的一部分 - 版本22.2.0及更新。