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

11 浏览
0 Comments

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

我在Windows 7上有一个正在开发的RN环境。一切都很好,直到昨天我运行“react-native start”后突然报错。\n错误信息:\n

[2016-12-26 09:58:17] HMR服务器正在监听 /hot
React打包器就绪。
fs.js:557
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^
错误: UNKNOWN: 未知错误,打开 '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);
                 ^
错误: UNKNOWN: 未知错误,打开 '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);
                 ^
错误: UNKNOWN: 未知错误,打开 '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)

\n我谷歌了这个错误,没有找到解决办法。\n我删除了.babel.json文件,错误仍然出现。\n我重新初始化了一个新项目,仍然是同样的错误。我卸载了node.js和python,然后按照RN官网的“入门指南”重新安装,仍然是同样的错误。\n我安装了react-native-cli 2.0.1和1.3.0,仍然是同样的错误。\n似乎这个RN项目即使有错误也可以工作。但你永远不知道这个错误什么时候会影响到我的项目。

0
0 Comments

问题的原因是node.js版本过低,解决方法是升级node.js版本。

0
0 Comments

问题的原因是在C:\Users\Me路径下存在一个无效的babel.json文件,解决方法是删除该文件并重新生成一个,并且给该文件授予读取权限。

具体步骤如下:

1. 删除.babel.json文件

2. 运行react-native run-android命令(重新生成.babel.json文件)

3. 在Windows资源管理器中打开C:\Users\yourUserName路径(不是IE浏览器)

4. 右键点击.babel.json文件,选择“属性”

5. 进入安全选项卡,点击“高级”按钮

6. 点击“更改权限...”按钮,再点击“添加...”按钮

7. 在“选择要应用的对象”输入框中输入Everyone,点击“确定”

8. 在权限窗口中勾选“允许完全控制”,点击“确定”

9. 点击“确定”

10. 再次运行react-native run-android命令(问题应该已解决)

参考链接:https://github.com/facebook/react-native/issues/11803

0
0 Comments

问题的原因是:在构建过程中,babel-register在每个tick上将缓存写入~/.babel.json文件中。由于写入是同步的,所以在单个节点线程内不会出现竞争条件。由于Node是单线程设计,这必须是由Java中的某些并行执行触发了多个并行的节点线程。

解决方法是:需要在React Native中修复这个问题,可能需要与babel-register协调解决。可以将这个问题提交到相关的GitHub问题中,链接为https://github.com/facebook/react-native/issues/11803。

参考链接:https://stackoverflow.com/a/56617922/8740349

0