【发布时间】:2016-02-08 23:00:39
【问题描述】:
我正在尝试运行 Jest 测试,但出现以下错误:
错误读取文件:
/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 抛出错误; ^错误:EMFILE:打开的文件太多,打开 '/Users/mike/dev/react/TestTest/node_modules/react-native/node_modules/yeoman-environment/node_modules/globby/node_modules/glob/node_modules/path-is -绝对/package.json' 在错误(本机) npm 错误!测试失败。有关详细信息,请参见上文。
令我感兴趣的是,错误中列出的路径指向 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"
}
}
但我每次都遇到同样的错误。
【问题讨论】:
-
在尝试了其他选项后,根据此论坛帖子bountysource.com/issues/…,我最终使用
brew install watchman取得了成功
标签: reactjs react-native jestjs ulimit