經常看到react-native的庫,通過npm安裝,怎麼才能實作自己的庫呢?
我沒有上傳到npm的公共倉庫中,隻是我的GitHub上面的私有庫,通過指定位址也可以實作私有庫,我以微信的SDK為例,這裡具體實作參考了react-native-wechat這個庫,因為微信和iOS的稽核都修改對了
WKWebView
處理,而這個庫沒有完成更新,是以我自己實作了一個更新的私有庫,基本上代碼沒有修改,隻是友善以後使用。
進入正題
一、建立私有庫
- 參考這個工具庫,建立要開發的庫react-native-module
安裝這個庫
npm install -g react-native-cli yarn
npm install -g create-react-native-module
建立你要建立的庫,這個工具可以自動建立example,是以可以直接在裡面開發測試完成後,送出到git。
##QWWechat是庫名 --package-identifier指定了Android的包名,具體參考文檔
create-react-native-module QWWechat --package-identifier io.qw.wechat --generate-example
執行指令後,可以看到庫的一些資訊
2. 建立完成後,目錄結構如下,這之後,就可以開發原生和react-native了,原生iOS和Android可以參考官網的文檔原生通信
- 以我的的微信為例,假如需要三方庫怎麼辦呢,另外三方庫還可能依賴系統或者其他的三方庫(主要是iOS,Android的話直接配置gradle就可以了),這裡就需要配置
檔案,微信可以通過pod內建,是以可以設定成依賴庫,參考podspec
- 到上面這一步,庫基本就完成了,可以上傳到Git,在
檔案中指定位址package.json
二、遇到的問題
- 在example中可以直接修改代碼,代碼會自動更新到庫中,原因在
中,這裡做了一個軟連接配接,實際修改的還是庫,這裡困惑了很久,其他的文檔,告訴我用package.json
,但其實file
才對,也許是跟版本有關link
"dependencies": {
"react-native-qw-wechat": "link:../",
"react": "16.11.0",
"react-native": "0.62.2"
},
- 如果建立了檔案怎麼辦?在iOS中,我用到react-native中的
,是以我建立了一個類,但是這個類并沒有同步更新,這個時候,需要重新DeviceEventEmitter
安裝私有庫,執行完以後,yarn install
,注意新版本的pod install
不需要react-native
,但是需要執行react-native link
pod install
- 還有一個不常有的錯誤,在
目錄裡面也有一個react-native-qw-wechat
,手欠的我執行了一個package.json
,導緻了運作example出現了一下錯誤yarn install
這是我自己的私有庫,開發的時候需要換成你的Git位址安裝 yarn add https://github.com/toywang/react-native-qw-wechat