自己一直有参加公司的各种 React native Module 组件的开发维护,但是以前全部都是 Android 和 ios 组件分开维护,并且把很多 SDK 都放在一个库里,这样导致后期维护成本和对接难度大大提升,于是借助这次要新对接一个 SDK 的机会我推进了公司 RN 模块整合化的工作,将 Android 和 IOS 模块全部按照 RN 组件开发规范重新整理,并完善相关对接文档,利用 npm + http 协议模式安装卸载模块

PS:这样的好处是有很多的,希望小伙伴们能和我一起完成这些有利工作的计划推进…

通过官方文档的查阅和学习,知道可以使用 react-native-create-library 这个库来快速创建一个包含 Adroid ,IOS 系统下的模块。

下面将简单介绍如何安装使用 react-native-create-library

NPM 模块详情:https://www.npmjs.com/package/create-react-native-module

GitHub 地址:https://github.com/brodybits/create-react-native-module

安装这个工具还是很简单的,利用 npm 或者 yarn 将其全局安装到自己环境就好了

# npm 安装方法
npm install -g react-native-create-library

# yarn 安装方法
yarn add -g react-native-create-library

安装好后我们一起看看怎么使用,我这里就简单介绍一下我用到的几个参数,需要的小伙伴我建议还是去他的 github 主页看一下官方文档

最简单的方式就直接进入到一个空目录,如我们开发模块的目录:/data/native/ 然后直接创建一个模块,这里的目录以及模块名都是你自己决定的

# 进入开发目录
cd /data/native/

# 创建一个叫 hxf-demo 的模块
create-react-native-module hxf-demo

它的一些参数,我这里简单翻译几个吧

Usage: create-react-native-module [options] <name>

Options:

  -V, --version                             显示版本号
  --prefix <prefix>                         组件模块的名字 (默认值: ``)
  --module-name <moduleName>                要在其中使用的模块库包名,也就是要写到 package.json 中的 name。 默认值: react-native-(name in param-case)
  --module-prefix <modulePrefix>            如果指定了模块名,则忽略组件模块的模块前缀 (默认值: `react-native`)
  --package-identifier <packageIdentifier>  [Android] Android 模块使用的 Java 包标识符 (默认值: `com.reactlibrary`)
  --platforms <platforms>                   模块将被创建为什么平台。用 , 分隔 (默认值: `ios,android`)
  --tvos-enabled                            生成启用 tvOS 构建的模块( 需要,react-native-tvos 最低版本为0.60,并启用 iOS 平台)
  --github-account <githubAccount>          库模块所在的 github 帐户 (默认值: `github_account`)
  --author-name <authorName>                模块作者的名字 (默认值: `Your Name`)
  --author-email <authorEmail>              模块作者的邮箱 (默认值: `yourname@email.com`)
  --license <license>                       许可证类型 (默认值: `MIT`)
  --view                                    将模块生成为一个非常简单的原生视图组件
  --use-apple-networking                    [iOS] 在 podspec 中使用 “AFNetworking” 依赖项作为示例,并在 iOS 代码中使用它
  --generate-example                        生成一个示例项目并将库模块链接到它,需要同时安装 react-native-cli 和 yarn
  --example-name <exampleName>              示例项目的名称 (默认值: `example`)
  --example-react-native-version <version>  对生成的示例项目使用 React native 版本 (默认值: `react-native@latest`)
  --write-example-podfile                   [iOS] 不支持实验特性:写入(或覆盖)示例 ios/Podfile
  -h, --help                                输出帮助信息

我大概先记录到这里吧,这是一个系列博客,下一篇我和大家一起手把手封装一个模块吧,不是官网的那种,可能是对接国内某个广告商的 SDK …