最近我尝试将本机版本从0.48.4更新到0.49.0。我已阅读有关更改的documentation。我安装了react-native v0.49.0。当我试图运行时,我得到了这样的错误
node_modules\react-native\local-cli\util\findSymlinkedModules.js:37
ignoredRoots? = [])
^
SyntaxError: Unexpected token ?
at createScript (vm.js:53:10)
at Object.runInThisContext (vm.js:95:10)
at Module._compile (module.js:543:28)
at loader (\node_modules\babel-register\lib\node.js:144:5)
at Object.require.extensions.(anonymous function) [as .js] (node_modules\babel-register\lib\node.js:154:7)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
我尝试使用react-native-git-upgrade
和react-native upgrade
进行升级。但是收到的错误就像未被识别为内部或外部命令一样。
我发现新增功能和增强功能中的一项更改会更改RN 0.49.0中的日志
Refactor how symlinks are discovered in local-cli, support scoped modules
与此有什么关系
答案 0 :(得分:0)
如果您正在使用git repo,请尝试删除项目文件夹,然后重新克隆回购。这适用于遇到同样问题的朋友。
我在这里找到了这个解决方案: https://github.com/facebook/react-native/issues/16458
答案 1 :(得分:0)
要解决这个问题,我必须使用babel-plugin-transform-flow-strip-types
插件。
步骤:
npm install --save-dev babel-plugin-transform-flow-strip-types
在.babelrc
{
"plugins": ["transform-flow-strip-types"]
}
更多详情https://www.npmjs.com/package/babel-plugin-transform-flow-strip-types
答案 2 :(得分:0)
升级到"react-native": "0.54.1",
为我修复此问题。
答案 3 :(得分:0)
进入同样的问题,更新到0.54。
这里的根本原因是Node尝试使用Flow类型解释JS代码(在本例中为ignoredRoots?
)。
正如Dinesh建议的那样,通常Babel会通过babel-plugin-transform-flow-strip-types
移除这些类型。但是,这种转换包含在标准的反应原生Babel预设中,它也会做很多其他事情。
因此,您真正需要做的是确保您具有该预设设置。它应该在devDependency
中的package.json
下:
"devDependencies": {
"babel-preset-react-native": "^4.0.0",
然后在.babelrc
中配置:
{
"presets": ["react-native"]
}
在设置之后,您仍可能需要重置打包缓存:
npm start -- --reset-cache
这就是为我做的,希望它有所帮助。
答案 4 :(得分:0)
从?
第37行删除findSymlinkedModules.js
对我有用