Jest以与Node.js不同的顺序解析模块路径

时间:2018-01-23 09:33:50

标签: javascript node.js testing jestjs node-modules

在我的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设置为appconfig时,require('passport')调用会解析为config/passport.js (你可以想象)崩溃的应用程序。

为什么Jest在modulePaths需要包裹之前会查看node_modules?这怎么可以解决?我尝试将node_modules添加到Jest的modulePaths,但它造成了更多麻烦而不是解决。 我试着查看Jest的代码但没有结果。

1 个答案:

答案 0 :(得分:0)

所以Jest只是按照我描述的顺序加载模块。

对于任何解决类似问题的人来说 - 这应该不再是问题,因为我创建了一个问题,PR被批准并合并到Jest的主人。

https://github.com/facebook/jest/issues/5377

它现在是Jest的一部分 - 版本22.2.0及更新。