ReactJS 测试 - fsevents 不是函数

H. *_*ner 13 unit-testing typeerror npm reactjs react-scripts

我正在尝试为我的程序编写测试用例,我听到了关于testing-library/react和 的好消息jest-junit。我使用 npm 将两个软件包安装到我的devDependencies并更改了我的测试脚本:"test": 'react-scripts test"当我运行 npm test 时,我得到错误提示

TypeError: fsevents is not a function

所以我尝试 npm i fsevents 但它没有帮助。我尝试在网上查找,但错误是 fsevents 不是构造函数或更改为纱线。

是什么导致了这个问题?我正在使用 npm v6.4.1 和 react-script v3.1.1

编辑:如果重要的话,也使用 Mac

Edi2:我再次运行测试,没有任何更改就不再出现此错误。

Adi*_*are 40

在 OSX 上有类似的问题。如果有Homebrew,只需在终端中运行以下命令并重试:

brew install watchman 
Run Code Online (Sandbox Code Playgroud)

如果没有帮助,请尝试在终端中运行以下命令:

sudo rm -rf (xcode-select -print-path)
xcode-select --install
Run Code Online (Sandbox Code Playgroud)

  • 我遇到了同样的问题,“brew install watchman”命令解决了我的问题。谢谢 (3认同)

g-m*_*ill 12

任何时候我做 create-react-app 时,当我立即运行“npm test”时,我都会遇到这个确切的错误。如果我已经致力于 React 项目,这对我有用:

npm install fsevents@1.2.11
Run Code Online (Sandbox Code Playgroud)

经过一番挖掘,我发现我需要手动安装这个包,因为 CRA 抽出了几个

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.11 ...

初始安装期间的消息。然而,我需要这个包来运行“npm test”。

然而,我更大的问题是 CRA 跳过了这个依赖项安装,因为它没有在我的系统上检测到 xcode。我收到这些消息:

gyp: No Xcode or CLT version detected!
Run Code Online (Sandbox Code Playgroud)

解决办法是运行命令

xcode-select --install
Run Code Online (Sandbox Code Playgroud)

现在,任何未来的 create-react-app 都应该可以顺利运行,而无需安装任何额外的依赖项! 此处的其他 Xcode 故障排除。

  • 你让我的生活变得轻松。谢谢 (2认同)

Ed *_*lez 9

全新安装 node 和 create-react-app 后,我遇到了同样的问题。经过一番搜索,我发现这篇文章 [1] 是关于运行 npm test 的一个已知问题。

安装 watchman 后,测试正在运行。

[1] https://github.com/bbc/simorgh/wiki/Known-setup-issue-when-running-%60npm-test%60


小智 -2

fsevents默认情况下安装npm在 Mac OS 和 Windows 操作系统上。该错误"is not a constructor"可能意味着您尝试fsevents代码中进行初始化。最有可能与new关键字一起。请检查您的代码,如果没有请告诉我。