Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 什么是react native中的metro bundler?_React Native - Fatal编程技术网

React native 什么是react native中的metro bundler?

React native 什么是react native中的metro bundler?,react-native,React Native,我在学英语 我找不到适合metro bundler的文档。所以,我有几个问题。 顾名思义,它创建了一个包 但是包文件位于哪里 这和网页包一样吗 那个捆绑文件有什么用 React本机应用程序是运行某些Javascript的已编译应用程序。无论何时构建和运行React原生项目,都会启动一个名为Metro的打包程序。您以前可能在终端中看到过此输出,让您知道打包机正在运行 包装商做了几件事: 将所有Javascript代码合并到一个文件中,并翻译设备无法理解的任何Javascript代码(如JSX或某些

我在学英语

我找不到适合metro bundler的文档。所以,我有几个问题。 顾名思义,它创建了一个包

  • 但是包文件位于哪里
  • 这和网页包一样吗
  • 那个捆绑文件有什么用

  • React本机应用程序是运行某些Javascript的已编译应用程序。无论何时构建和运行React原生项目,都会启动一个名为Metro的打包程序。您以前可能在终端中看到过此输出,让您知道打包机正在运行

    包装商做了几件事:

    将所有Javascript代码合并到一个文件中,并翻译设备无法理解的任何Javascript代码(如JSX或某些较新的JS语法)

    将资源(例如PNG文件)转换为可由图像组件显示的对象

    参考:

    Metro是一个JavaScript捆绑程序,它接受选项和一个条目文件,并为您提供一个包含所有JavaScript文件的JavaScript文件。每次运行react本机项目时,都会将许多javascript文件编译成一个文件。这个编译是由一个称为Metro的绑定器完成的

    回答你的问题:

    1> 捆绑文件位于您构建应用程序的设备上,并以不同的格式存储,就像创建.bundle的Android普通捆绑一样。另一种格式是索引RAM包,其中文件存储为二进制文件

    2> Webpack也是一种类似的模块绑定器,它对ReactJS web平台进行绑定,其模块可以通过浏览器访问。捆绑过程与metro类似

    3> 这些捆绑文件以特定的数字格式进行索引和存储,因此在运行时很容易按顺序排列JS文件

    Metro bundler有多个功能,您可以在此处了解Metro在React Native中的角色:


    希望有帮助。

    Metro团队不断改进其文档,现在您可以在(链接更新)上找到一些非常好的解释:


    Metro是一个JavaScript绑定器。它接收一个条目文件和各种 选项,并返回一个包含al的JavaScript文件 您的代码及其依赖项

    是的,它是一种网页包,但对于React原生应用程序来说:)

    但是包文件位于哪里

    启动捆绑程序后,您可以在以下位置检查其内容: (与webpack一样,它是从内存中提供的,因此不会写入项目的文件夹中)

    那个捆绑文件有什么用


    此文件安装在设备中,以便在其中执行其代码请记住,当您为React本机应用程序编写代码时,您的代码不会“翻译”为Java/Swift/无论什么。本机模块将向Javascript线程发送事件,JS线程将执行绑定的React本机代码。

    当应用程序在设备上运行时,是否仍需要Metro Bundler?@user1443721:取决于,如果您正在运行
    调试
    构建,则选择“是”。如果您正在运行一个
    版本
    构建(
    react native run---variant=release
    ),则不运行。