我在Windows 7上有一个RN开发环境。它运行得很好,直到昨天我运行“react-native”start后突然报错。
错误消息:
[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 项目即使出现错误也能正常工作。但你永远不知道错误何时会损害我的项目。
我也遇到过这个问题,并尽我所能进行调试。该错误是由某些竞争条件引起的:
- 在构建过程中,
babel-register
将缓存写入~/.babel.json
, 在每个刻度上
- 由于写入是同步的,因此在单节点线程内不会出现竞争条件
- 由于节点在设计上是单线程的,这一定是由于Java中的一些并行执行,触发了多个并行节点线程
我不知道为什么这种情况不会发生在每个人身上,或者为什么只有在使用 React Native 一段时间后才会发生这种情况......
这需要在 React Native 中修复,可能与babel-register
...我会将其发布到相关的 GitHub 问题以及。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)