【问题标题】:Jest resolves module paths in different order than Node.jsJest 以与 Node.js 不同的顺序解析模块路径
【发布时间】:2018-02-08 14:00:08
【问题描述】:

在我的 Node.js 项目中,我安装了一个 passport 包和我自己的 config/passport.js 文件,其中配置了 Passport 策略以及 config/config.js 中的应用程序配置。

我将我的 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 的代码,但没有结果。

【问题讨论】:

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


    【解决方案1】:

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

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

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

    它现在是 Jest 的一部分 - 版本 22.2.0 和更高版本。

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 2020-08-08
      • 2017-07-01
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 2018-01-29
      • 2018-09-11
      相关资源
      最近更新 更多