ReactJS测试-fsevents不是函数

时间:2019-11-07 16:51:53

标签: reactjs unit-testing npm typeerror react-scripts

我正在尝试为程序编写测试用例,并且听说了有关testing-library/reactjest-junit的一些好消息。我使用npm将两个软件包都安装到了devDependencies中,并更改了脚本进行测试:"test": 'react-scripts test"运行npm test时,出现提示

TypeError: fsevents is not a function

因此,我尝试对fsevents进行npm,但这没有帮助。我尝试在网上查找,但错误要么是fsevents不是构造函数,要么是更改为yarn。

是什么原因导致此问题?我正在使用npm v6.4.1和react-script v3.1.1

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

Edi2:我再次运行了测试,并且在未进行任何更改的情况下不再遇到此错误。

5 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

在Mac OS和Windows操作系统上,默认情况下

fseventsnpm一起安装。错误"is not a constructor"可能意味着您试图用您的代码初始化fsevents。最有可能与new关键字一起使用。如果没有让我知道,请检查您的代码。

答案 2 :(得分:0)

每当我创建create-react-app时,当我立即运行'npm test'时,都会遇到此确切错误。如果我已经致力于React项目,那么这对我有用:

npm install fsevents@1.2.11

经过一番挖掘,我发现我需要手动安装此软件包,因为CRA抽出了一些

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

初始安装期间的

消息。但是,我需要这个程序包来运行“ npm test”。

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

gyp: No Xcode or CLT version detected!

解决方案是运行命令

xcode-select --install

现在,任何将来的create-react-app都应该可以平稳运行,而无需安装任何其他依赖项! Additional Xcode troubleshooting here.

答案 3 :(得分:0)

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

brew install watchman 

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

sudo rm -rf (xcode-select -print-path)
xcode-select --install

答案 4 :(得分:-1)

您要做的事情非常简单。运行以下

rm -rf node_modules/ package-lock.json  

然后

npm i

这对我有用。