美文网首页
学习笔记:RN-打包和动态化加载

学习笔记:RN-打包和动态化加载

作者: 双鱼子曰1987 | 来源:发表于2021-04-06 09:21 被阅读0次

一、Native本地加载流程

1.1、React应用打包

  • 1、导出.jsbundle包和图片资源
// 根项目下,即index.js所在文件夹
mkdir out
cd out
mkdir ios
mkdir android

// iOS
npx react-native bundle --entry-file index.js --bundle-output ./out/ios/index.ios.bundle --platform ios --assets-dest ./out/ios --dev false

// android
npx react-native bundle --platform android --dev false --entry-file index.js --bundle-output ./out/android/index.android.bundle --assets-dest ./out/android

生成.jsbundle(js部分的代码) 和 assets 文件夹 (项目所用到的资源)

  • 2、将.jsbundleassets 文件夹导入项目Native工程。
    注意导入assets文件夹的时候,options选择 Create folder refrences,否则RN应用会应用不到资源。

  • 3、Native加载(iOS为例)

NSURL *url = [[NSBundle mainBundle] URLForResource:@"index.ios.bundle" withExtension:nil];
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:url moduleName:@"HelloFirstRNDemo" initialProperties:nil launchOptions:nil];

1.2、react-native的命令详解

Options:
  -h, --help 输出如何使用的信息
  --entry-file <path> RN入口文件的路径, 绝对路径或相对路径
  --platform [string] ios 或 andorid
  --transformer [string] Specify a custom transformer to be used
  --dev [boolean] 如果为false, 警告会不显示并且打出的包的大小会变小
  --prepack 当通过时, 打包输出将使用Prepack格式化
  --bridge-config [string] 使用Prepack的一个json格式的文件__fbBatchedBridgeConfig 例如: ./bridgeconfig.json --bundle-output <string> 打包后的文件输出目录, 例: /tmp/groups.bundle
  --bundle-encoding [string] 打离线包的格式 可参考链接https://nodejs.org/api/buffer.html#buffer_buffer.
  --sourcemap-output [string] 生成Source Map,但0.14之后不再自动生成source map,需要手动指定这个参数。例: /tmp/groups.map --assets-dest [string] 打包时图片资源的存储路径
  --verbose 显示打包过程
  --reset-cache 移除缓存文件
  --config [string] 命令行的配置文件路径
  --bundle-output bundle文件输出路径
  --assets-dest 静态资源文件输出路径

1.3、关于metro

metro是一种支持ReactNative的打包工具,也可以基于它来进行拆包的。
react-native metro 分析

  • 加载包提示 Connect to Metro to develop JavaScript

二、动态化部署

基于ReactNative实现动态加载

相关文章

  • 学习笔记:RN-打包和动态化加载

    一、Native本地加载流程 1.1、React应用打包 1、导出.jsbundle包和图片资源 生成.jsbun...

  • js静态打包动态化插件

    动态插件 非模块化的js可以通过 标签来加载,可以简单实现动态化插件。在使用js静态打包工具后,所有依赖都在打包期...

  • DynamicLoadApk插件框架的动态加载代码分析

    导读:学习了任玉刚的动态加载框架技术,进行插件化的开发,实现host项目+plugin项目的独立开发,和动态加载,...

  • 插件化

    插件化插件化和热修复都 属于动态加载技术 动态加载技术在应用程序运行时,动态加载一些程序中原本不存在的可执行文件并...

  • 静态库(.a)和动态库(dylib)

    区别 1、加载 静态库:静态加载 动态库:动态加载 2、初始化 动态库可以在加载时进行初始化,并在客户端应用程序正...

  • Android 插件化、热修复、增量更新介绍

    一、插件化 概述:Android插件化技术,可以实现功能模块的按需加载和动态更新,其本质是动态加载未安装的apk。...

  • Android插件化之Hook Activity

    插件化:Android插件化技术,可以实现功能模块的按需加载和动态更新(从服务器上下载),其本质是动态加载未安装的...

  • 插件化方案

    一、将插件化内容打包成apk,放在宿主APP的assert目录下。二、app启动时,动态加载插件apk的内容: 将...

  • Android 动态加载机制基础-ClassLoader

    本文仅为学习笔记;不是原创文章; 动态加载的关键问题ClassLoader机制ClassLoader概念:Java...

  • Android插件化相关文章

    1.携程Android App插件化和动态加载实践 2.

网友评论

      本文标题:学习笔记:RN-打包和动态化加载

      本文链接:https://www.haomeiwen.com/subject/fvvscltx.html