自己一直有参加公司的各种 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 …
全部评论:1条