我正在尝试运行Jest测试,但是出现以下错误:
Error reading file:
/Users/mike/dev/react/TestTest/node_modules/react-native/node_modules/yeoman-environment/node_modules/globby/node_modules/glob/node_modules/path-is-absolute/package.json
/Users/mike/dev/react/TestTest/node_modules/jest-cli/node_modules/node-haste/lib/loader/ResourceLoader.js:88 throw err; ^Error: EMFILE: too many open files, open '/Users/mike/dev/react/TestTest/node_modules/react-native/node_modules/yeoman-environment/node_modules/globby/node_modules/glob/node_modules/path-is-absolute/package.json' at Error (native) npm ERR! Test failed. See above for more details.
对我来说有趣的是,错误中列出的路径指向node_modules目录中的一个文件,我原本以为由于testPathIgnorePatterns中包含了node_modules条目,所以不会读取这个文件。
我正在运行Node 4.2.1,React-Native安装仅一周,今天安装了Jest(所以我认为我已经更新了所有内容)。 我在Mac上运行。
我运行过: sudo ulimit -n 10240
,关闭了所有终端窗口,甚至尝试了重新启动。 (在我的.bash_profile文件中,我之前添加了ulimit -n 1024
。我甚至尝试过更大的数字。
为了确保问题不仅存在于我的项目中,我使用react-native init TestTest
创建了一个新项目,并对package.json进行了RN建议的更改:
{
"name": "TestTest",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node_modules/react-native/packager/packager.sh",
"test": "jest"
},
"dependencies": {
"react-native": "^0.14.1"
},
"jest": {
"scriptPreprocessor": "node_modules/react-native/jestSupport/scriptPreprocess.js",
"setupEnvScriptFile": "node_modules/react-native/jestSupport/env.js",
"testPathIgnorePatterns": [
"/node_modules/",
"packager/react-packager/src/Activity/"
],
"testFileExtensions": [
"js"
],
"unmockedModulePathPatterns": [
"promise",
"source-map"
]
},
"devDependencies": {
"jest-cli": "^0.7.1"
}
}
但是我每次都遇到相同的错误。
brew install watchman
安装成功。 - Brandon Culley