Ios main.jsbundle不存在。这一定是一个错误与。。升级到react native 0.63后的main.jsbundle问题

Ios main.jsbundle不存在。这一定是一个错误与。。升级到react native 0.63后的main.jsbundle问题,ios,xcode,react-native,Ios,Xcode,React Native,“反应”:“16.13.1”, “反应本机”:“0.63.0” 遇到以下问题:main.jsbundle不存在。在升级到react native 0.63后尝试存档时,这一定是一个有问题的bug。我想知道是否有人遇到同样的问题 找到了解决方案 在Xcode构建阶段->复制捆绑资源中,添加main.jsbundle 在package.json中,添加 因此将为我生成main.jsbundle错误发生,因为我有如下导入: import Component from '..'; cd $PROJE

“反应”:“16.13.1”, “反应本机”:“0.63.0”

遇到以下问题:main.jsbundle不存在。在升级到react native 0.63后尝试存档时,这一定是一个有问题的bug。我想知道是否有人遇到同样的问题

找到了解决方案

  • 在Xcode构建阶段->复制捆绑资源中,添加
    main.jsbundle
  • package.json
    中,添加

  • 因此将为我生成
    main.jsbundle

    错误发生,因为我有如下导入:

    import Component from '..';
    
    cd $PROJECT_DIR/..
    export NODE_BINARY=node
    ./node_modules/react-native/scripts/react-native-xcode.sh
    
    用相对路径(
    @components/path/to/component
    )替换这些路径修复了该问题

    不确定为什么现在解析这些路径有问题

    我深入研究了
    node\u modules/react native/node\u modules/@react native community/cli/build/commands/bundle/buildBundle.js
    ,并在
    buildBundle
    函数中放置了一个catch块,以便查看导入有问题的组件


    我认为@changey的解决方案也有效,它只需要在CI中添加一个额外的构建步骤。

    将您的babel.config.js更改为.babelrc.js,它就会起作用。

    这在一个涉及
    babel插件模块解析器的项目中对我有效:

  • 在Xcode中打开您的
    ios/*.xcworkspace
  • 在项目导航器中单击项目名称
  • 单击左侧窗格中的目标名称
  • 点击构建阶段
  • 展开本机代码和映像阶段
  • 在脚本的第一行,添加
    cd$PROJECT\u DIR/。
    以进入目录
  • 整个脚本应如下所示:

    import Component from '..';
    
    cd $PROJECT_DIR/..
    export NODE_BINARY=node
    ./node_modules/react-native/scripts/react-native-xcode.sh
    
    请注意,如果此问题的根源是0.63.0中的一个bug,则此问题可能会中断,因此您可能需要在将来的版本中撤消此问题


    为@typester提供道具,用于启动此功能。

    我从0.62.5升级到了0.63,并遇到了相同的错误

    在我的例子中,我发现在“Bundle react native code and images”构建阶段执行的
    react native xcode.sh
    脚本将错误的条目文件(
    index.js
    )传递给了build命令,而它本应使用
    index.ios.js
    。不清楚为什么会在0.63中发生变化

    对我有效的解决方案是在运行脚本时指定正确的条目文件:

  • 在Xcode中,转到构建阶段->绑定本地代码和映像
  • 更改脚本的这一部分
    。/node\u modules/react native/scripts/react native xcode.sh
    ENTRY\u FILE=index.ios.js../node\u modules/react native/scripts/react native xcode.sh

  • 上面没有一个为我修复它,但它与这个公关工作,它可能会很快发布


    以防有人发现它有用:)

    当我运行
    纱线束ios
    时,出现了以下消息

    无法从
    src/scenes/Home/index.js
    解析模块
    config/dimension
    :在项目中找不到config/dimension

    我一直在使用
    react native module resolver
    。我为路径别名配置了“@configs”。如上所示,@缺失

    更正了它,main.jsbundle最终被创建。

    这是一个已知的问题(),在0.63.3中得到了修复


    只要更新到^0.63.3,你就会很好。

    对我来说,我在同一个项目中有
    .babelrc
    babel.config.js
    文件。因此RN找不到某些导入的库。所以我修改了我的
    .babelrc
    如下:

     {
       "extends": "./babel.config.js", 
       "plugins": [ //bla bla 
    
       ],
     }
    

    这就是我停止错误的原因。

    您知道是什么原因导致了错误的改变吗?当然,这看起来很合乎逻辑,但是为什么以前不需要调用
    react native bundle
    呢?它可以工作,但奇怪的是,所有资产都丢失了,没有一个图像显示我这也可以工作,但也没有包括任何资产。在我的例子中,这似乎与使用
    babel插件模块解析器
    进行简短的绝对导入有关。仔细查看构建日志,我可以看到它在第一次访问其中一个导入时无法生成jsbundle。我还没有找到解决办法。“我认为回到相对进口会起作用……”IsaacOveracker说,这里的情况也一样。我想知道是这个插件由于某种原因不起作用,还是其他babel功能也不起作用。@EmpireJones我注意到除了配置了
    babel.config.js
    设置的
    babel插件模块解析程序之外,我还生成了默认的
    .babelrc
    文件。我删除了
    .babelrc
    ,并进一步生成了jsbundle,但遇到了一个不同的错误,与我的monorepo-nojust规则缺少几个lib有关。为什么这只在0.63.0而不是0.62.2上失败,我仍然不明白。我做得更进一步了,但现在我有了类似于Sachanski回答的错误——相对导入。我找到了一个解决方案。看下面。这对我来说没有任何改变。这为我修正了它,但我投了反对票,stackoverflow不让我改变它!我不想相信,但这对我来说也很有效。非常感谢。谢谢你!我很想知道为什么这比原来的更有效,它只是指向../node_模块。但是我没有index.ios.js,我还可以使用index.ios.js吗?@leeCoder无论你的ios条目文件是什么(也许你有一个index.js),只要确保react-native-xcode.sh脚本使用相同的文件就行了。