提问者:小点点

react native start报告:错误:未知错误,打开…\.babel.json


我在 Windows 7 上有一个 RN 开发环境。它工作正常,直到昨天在我运行“反应本机”启动后突然报告错误。错误消息:

[2016-12-26 09:58:17]         HMR Server listening on /hot

React packager ready.

fs.js:557
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: UNKNOWN: unknown error, open 'C:\Users\xitao\.babel.json'
    at Object.fs.openSync (fs.js:557:18)
    at Object.fs.writeFileSync (fs.js:1222:33)
    at save (C:\RN\LearnRN\node_modules\babel-register\lib\cache.js:45:16)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)
fs.js:557
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: UNKNOWN: unknown error, open 'C:\Users\xitao\.babel.json'
    at Object.fs.openSync (fs.js:557:18)
    at Object.fs.writeFileSync (fs.js:1222:33)
    at save (C:\RN\LearnRN\node_modules\babel-register\lib\cache.js:45:16)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)
fs.js:557
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: UNKNOWN: unknown error, open 'C:\Users\xitao\.babel.json'
    at Object.fs.openSync (fs.js:557:18)
    at Object.fs.writeFileSync (fs.js:1222:33)
    at save (C:\RN\LearnRN\node_modules\babel-register\lib\cache.js:45:16)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)

我谷歌错误,没有运气。我删除了. babel.json,错误仍然出现。我重新开始了一个新项目,还是老样子。我卸载node.js和python,然后按照RN主页上的“入门”重新安装,还是一样。我安装react-native-cli 2.0.1和1.3.0,还是一样的。

似乎RN项目即使有错误也能工作。但是你永远不知道什么时候这个错误会伤害我的项目。


共3个答案

匿名用户

我也遇到了这个问题,并尽我所能进行了调试。该错误源于某些竞争条件:

    < li >在构建期间,< code>babel-register会在每个时钟周期向< code>~/.babel.json写入缓存 < li >由于写入是同步的,所以在单个节点线程中不会出现竞争情况 < li >由于节点设计为单线程,这一定是由于Java中的一些并行执行,触发了几个并行节点线程

我不知道为什么这不会发生在每个人身上,也不知道为什么只有在使用了react native一段时间之后才会发生。。。

这将需要在React Native中修复,可能需要与< code>babel-register协调...我也将在相关的GitHub问题上发表这篇文章。

匿名用户

尝试删除。babel.json,生成一个新文件并授予该文件的读取权限。

C:\Users\Me中有一个无效的babel.json文件。修复或移除它。这不是由React Native创建的,也不需要,除非你想为你机器上的每个项目设置一些全局的babel设置。

https://github.com/facebook/react-native/issues/11803

  1. 删除 .babel.json
  2. React-native run-android (re-generate .babel.json)
  3. 在Windows资源管理器(不是IE)中打开C:\Users\yourUserName\
  4. 右键单击 .babel.json

匿名用户

我的节点。js的版本是7.5.0。

我昨天更新到7.10.0问题就解决了