我正在try 运行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

错误:EMFILE:打开的文件太多,打开"/Users/mike/dev/react/TestTest/node_modules/react native/node_modules/yeoman environment/node_modules/globby/node_modules/path为绝对/package.json'

我感兴趣的是,错误中列出的路径指向node_modules目录中的一个文件,我预期由于testPathIgnorePatterns中的node_modules条目,该文件不会被读取.

我正在运行Node 4.2.1,我安装React Native的时间只有一周,我今天安装了Jest(所以我认为我对所有内容都很了解).我在Mac电脑上.

我已经运行了:sudo ulimit -n 10240,关闭了所有终端窗口,甚至try 重新启动.(在我的.bash_档案中,我之前添加了ulimit -n 1024.我try 了更大的数字.

为了确保问题不仅仅出现在我自己的项目中,我创建了一个包含react-native init TestTest个项目的新项目,并对包进行了RN建议的更改.json:

{
  "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"
  }
}

但我每次都会犯同样的错误.

推荐答案

简短回答:在~.中添加'ulimit-n4096'.bash_配置文件和打开新的终端窗口解决了我的问题.

答案与我没有正确设置ulimit有关.

sudo ulimit -n 10240

在我的Mac上,静默不会改变ulimit.我原本以为它什么都没做,因为10240不是1024的增量.但当我try 2048、4096等时,它也没有起任何作用.

那么,"解决方案"是什么?

  • ulimit-n(不带数字)将告诉您当前值是多少
  • 对我来说,在终端窗口中输入sudo ulimit -n 2048并没有改变ulimit(无论我try 了什么数字)
  • 将"ulimit-n4096"添加到~.bash_简介和新终端的开通解决了这个问题

React-native相关问答推荐

元素类型无效:应为字符串

react native 如何更新倒置平面列表的数组中的项目

错误发生意外错误:https://registry.yarnpkg.com/react-native-template-react-native-template-typescript:未找到

如果没有启用远程调试器,React Native 代码将无法工作

react-native redux 和 ListView

ReactNative 0.43-rc.2 FlatList -- 试图获取超出范围索引 0 的框架

如何在react-native中淡化视图的边缘?

如何在 React Native 中本地存储不是字符串的数据

React-Native:显示加载屏幕直到加载 webview

由于端口 8081 sunproxyadmin,无法打包 react native

React Native:自定义字体在 Android 和 iOS 上呈现不同

react-native 自动完成文本输入

XCode AppIcon 基于方案

将 react-native 元素Bundle 为 iOS 框架或 (.aar) Android 库

React Native 中使用了哪些维度单位?

react-native 中的倒数计时器

如何在 react native 中将数组保存在异步存储中?

ExpoKit 和 React Native 元素的区别

使用 React Native 运行多个 iOS 模拟器?

降级 react-native 的适当机制