lernaを使用して複数のキットを管理する


1つのソリューションが生成されると、複数のソリューションが生成されることは避けられません.npmパッケージは、異なるユーザーグループに適していますが、これらのパッケージは互いに依存し、管理され、複雑である可能性があります.lernaは、マルチパッケージの管理を容易に支援します.

lerna優劣


メリット:
  • 各サブモジュール間の依存を気にする必要はありません.lernaが管理します.発注
  • 開発サブモジュールは開発環境の依存を気にする必要がなく、外層が統一的に管理され、開発がより便利である
  • はサブモジュールを切り替える必要がなく、すべてのサブモジュールは同じプロジェクト
  • にある.
  • サブモジュール間の開発も相対的に独立している
  • .
  • 依存関係を自動的に変更し、コミットし、パブリッシュし、tag
  • を作成します.
    劣勢:
  • 倉庫の体積は急速に増加し、サブモジュールの増加に伴い、倉庫の体積は非常に膨大になる
  • lerna初期化

    lerna init

    修正lerna.json


    バージョンはindependentで各サブパッケージの独立管理バージョンを表します
    {
      "packages": [
        "packages/*"
      ],
      "version": "independent",
      "command": {
        "bootstrap": {
          "npmClientArgs": ["--hoist"]
        }
      }
    }
    lerna link convertを使用して依存をルートに抽出することができ、yarn workspaceと同様に

    インストール依存

    $ npm i    #         
    $ lerna bootstrap    #           
    $ lerna add {module} --scope={package}    #            
    $ lerna run start --scope={package}    #       

    例を挙げる
    $ #        
    $ lerna run start
    $ #    antd   ,   scope     ,     
    $ lerna run start --scope antd
    
    $ #    --stream   ,           
    $ lerna run start --scope antd --stream
    

    依存のアンインストール

    lerna exec --  [..args] #           
    //  
    lerna exec --scope=antd  yarn remove webpack #   antd     webpack   

    インストール依存の削除

    lerna clean

    パッケージが変更されたかどうかを確認

    lerna updated/diff

    ローカルのすべてのパッケージのリストを表示

    lerna list

    パブリッシュ前に変更されたパッケージを表示

    lerna changed

    lerna発注

    lerna publish
    lerna version  #        git ,       npm

    エラー再発注
    lerna publish from-git
    lerna publish from-package