Jest失败并出现错误:无法找到模块'react / lib / ReactComponentTreeHook'

时间:2016-12-01 13:21:03

标签: reactjs jestjs

我已经在我的反应项目中安装了Jest v17.0.3。

当我在本地运行jest它工作正常,但在构建服务器上它失败了:

  

错误:无法从'ReactDebugTool.js'找到模块'react / lib / ReactComponentTreeHook'

两台机器都运行节点版本6.9.1和npm版本4.0.2。

4 个答案:

答案 0 :(得分:14)

使用相同版本的react和react-dom。使用此命令后我的问题已修复

npm install --save react@15.4.0 react-dom@15.4.0

这个问题特别发生在上面的15.4.0反应中。

答案 1 :(得分:5)

您可以查看您使用的是哪种版本的React吗?两台服务器上都一样吗?我会尝试删除node_modules并重新安装依赖项。我建议这样做的原因是,在React v15.4.0中,您无法导入私有API,似乎ReactDebugTools.js正在尝试从react/lib/...导入。

关于React v15.4.0(Link)的博客文章:

  

但是,您可能从react / lib / *导入了私有API,或者您依赖的包可能会使用它们。我们想提醒您,这从未受到支持,您的应用不应依赖内部API。当我们努力使React变得更好时,React内部结构将不断变化。

希望这有帮助!

答案 2 :(得分:3)

在最新版本的反应中,我们经常看到这个错误,因为我们加载了2个版本的反应:

要确保您只有1个版本,请在终端中运行以下命令:

  1. npm ls react-dom enter image description here

  2. npm ls做出反应 enter image description here

  3. react和react-dom版本都需要相同。 如果其中任何一个返回超过1个版本,则不支持。您必须在相应的package.json

    中更正它

答案 3 :(得分:-2)

我有同样的问题,我删除了node_modules并运行了npm install,它修复了问题。