天天看點

react-native 建立私有庫

經常看到react-native的庫,通過npm安裝,怎麼才能實作自己的庫呢?

我沒有上傳到npm的公共倉庫中,隻是我的GitHub上面的私有庫,通過指定位址也可以實作私有庫,我以微信的SDK為例,這裡具體實作參考了react-native-wechat這個庫,因為微信和iOS的稽核都修改對了

WKWebView

處理,而這個庫沒有完成更新,是以我自己實作了一個更新的私有庫,基本上代碼沒有修改,隻是友善以後使用。

進入正題

一、建立私有庫
  1. 參考這個工具庫,建立要開發的庫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 
           

執行指令後,可以看到庫的一些資訊

react-native 建立私有庫

2. 建立完成後,目錄結構如下,這之後,就可以開發原生和react-native了,原生iOS和Android可以參考官網的文檔原生通信

react-native 建立私有庫
  1. 以我的的微信為例,假如需要三方庫怎麼辦呢,另外三方庫還可能依賴系統或者其他的三方庫(主要是iOS,Android的話直接配置gradle就可以了),這裡就需要配置

    podspec

    檔案,微信可以通過pod內建,是以可以設定成依賴庫,參考
    react-native 建立私有庫
  2. 到上面這一步,庫基本就完成了,可以上傳到Git,在

    package.json

    檔案中指定位址

二、遇到的問題

  1. 在example中可以直接修改代碼,代碼會自動更新到庫中,原因在

    package.json

    中,這裡做了一個軟連接配接,實際修改的還是庫,這裡困惑了很久,其他的文檔,告訴我用

    file

    ,但其實

    link

    才對,也許是跟版本有關
"dependencies": {
    "react-native-qw-wechat": "link:../",
    "react": "16.11.0",
    "react-native": "0.62.2"
  },
           
  1. 如果建立了檔案怎麼辦?在iOS中,我用到react-native中的

    DeviceEventEmitter

    ,是以我建立了一個類,但是這個類并沒有同步更新,這個時候,需要重新

    yarn install

    安裝私有庫,執行完以後,

    pod install

    ,注意新版本的

    react-native

    不需要

    react-native link

    ,但是需要執行

    pod install

  2. 還有一個不常有的錯誤,在

    react-native-qw-wechat

    目錄裡面也有一個

    package.json

    ,手欠的我執行了一個

    yarn install

    ,導緻了運作example出現了一下錯誤
這是我自己的私有庫,開發的時候需要換成你的Git位址安裝

yarn add https://github.com/toywang/react-native-qw-wechat