迁移以反应原生0.49

时间:2017-10-09 08:31:44

标签: android react-native version

最近我尝试将本机版本从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-upgradereact-native upgrade进行升级。但是收到的错误就像未被识别为内部或外部命令一样。

我发现新增功能和增强功能中的一项更改会更改RN 0.49.0中的日志

Refactor how symlinks are discovered in local-cli, support scoped modules

与此有什么关系

5 个答案:

答案 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对我有用