在生成for响应本机0.62.2时遇到此错误。
在104:30的文件node_modules/react-native/Libraries/Blob/URL.js:中,出现了错误的node_modules/react-native/Libraries/Blob/URL.js意料之外的令牌提示:使用--详细标志运行CLI以获取更多详细信息。错误:在104:30时文件node_modules/react-native/Libraries/Blob/URL.js中的意外令牌朋c::
尝试删除node_modules和yarn.lock,但没有结果。:(
发布于 2022-01-11 21:57:05
问题是由于地铁反应-反应-土生土长-巴贝尔预设。将其更新为“地铁-反应-本机-babel-预设”:"^0.66.2“
发布于 2022-02-17 07:59:14
Ashok所接受的答案提供了一个可行的解决方案。
如果你对更多的细节感兴趣,以及解决问题的其他方法,请继续阅读。
升级到最新版本的metro-react-native-babel-preset是不需要的。它可能会导致其他兼容性问题。修正了0.59中的错误,该错误最初随ReactiNative0.63一起交付。如果您使用的是Reacti原住民的旧版本,则可能仍然锁定在<0.59版本。
选项1至少将metro-react-native-babel-preset升级到0.59
yarn add -D metro-react-native-babel-preset@^0.59现在来看一下这个构建错误的附加细节和根本原因。这一起源可追溯到2022年1月10日巴别尔7.16.8的发行。这个StackOverflow问题是在第二天1月11日创建的。@babel/traverse@7.16.8包含以下PR:
https://github.com/babel/babel/pull/14105
这个PR修复了Babel穿越AST的错误。修复预计不会产生任何不利影响(可以从只增加修补程序版本这一事实可以看出)。但是,0.59之前的metro-react-native-babel-preset版本内部依赖于这个bug的存在。
为什么这个突然破了?因为metro-react-native-babel-preset将所有babel依赖项声明为^7.0.0 (意思是:使用7.x主要版本系列中的任何次要版本和补丁版本)。通常,应用程序项目中的依赖锁文件应该避免任何意外的依赖项更改,但在某些情况下,依赖锁是不可用的(或使用的)。
问题的两种替代修复方法,不需要更新metro-react-native-babel-preset
选项2 (当使用metro-react-native-babel-preset版本0.58.0时)
将babel.config.js中的以下行更改为
presets: ['module:metro-react-native-babel-preset']至
presets: [['module:metro-react-native-babel-preset', {
unstable_disableES6Transforms: true
}]],选项3 (用于metro-react-native-babel-preset的早期版本)
将以下内容添加到package.json
"resolutions": {
"@babel/traverse": "7.16.7"
}kerm1it和其他人在GitHub上的以下问题中详细介绍了这些选项:
https://github.com/babel/babel/issues/14139
尼科尔·里博多关于docz中一个相关漏洞的另一个令人惊讶的详细答复可以在这里找到:
https://github.com/doczjs/docz/issues/1691#issuecomment-1025928444
发布于 2022-07-28 18:40:29
列出的任何解决方案都应该工作,但值得注意的是,您可能应该运行npx react-native start --reset-cache来清除转换缓存。

https://stackoverflow.com/questions/70662596
复制相似问题