モジュールの開発時にピア依存関係を処理する方法



同輩の依存関係は何ですか?
Peer dependencies 特定の種類の依存関係は再利用可能なモジュールにとって本当に有用です.
  • ユーザが特定のバージョンを指定せずにモジュールが動作する必要がある依存関係をインストールするように頼む
  • ユーザのアプリケーションnodeloseモジュールで同じモジュールの複数のバージョンを持つのを防ぎます
  • JavaScriptファイルのサイズを減らす
  • ピア依存関係の問題はnpm and yarn インストールしないでください.これは、生産目的のための正しい動作ですが、開発しているときは、ホストアプリケーションでモジュールをテストする必要があるかもしれません.npm and yarn それを達成するためのコマンドを提供するlink これは基本的にホストアプリケーションにシンボリックリンクを作成するnode_modules モジュールソースフォルダに.うまく動作しますが、これらの依存関係を必要とするモジュールでタスクを実行する必要があります.たとえば、テストを実行したい場合があります.モジュールのモジュールには存在しないのでnode_modules 次のようなエラーが発生します.
    Cannot find module 'react' from 'index.js'
    
    yarn and npm 開発環境にピア依存関係をインストールするツールを提供しないでください.が発行されますyarn リポジトリ27 October 2016 でもyarn と呼ばれる特殊なスクリプトprepare これは開発モードだけで依存関係をインストールした後に実行されます🤔. 仕事を準備する方法を見つけましょう!

    問題を解決する
    私はrepository すべてのソースで問題を再現する.
    次のフォルダ構造があります.
    .
    ├── LICENSE
    ├── README.md
    ├── app
    │   ├── node_modules
    │   ├── package.json
    └── lib
        ├── node_modules
        └── package.json
    
    まず第一に我々は、アプリケーションのようにリンクを設定しますnode_modules libフォルダにポイントします.
    依存関係をインストールする必要がありますし、モジュールをビルドする必要があります
    cd lib
    yarn link
    cd ../app
    yarn link lib
    
    この時点でアプリケーションを起動すると、モジュールを使用することができます.テストの前に言ったように、モジュールフォルダを実行しようとすると問題が出てきます.これを解決するためにprepare スクリプトyarn パッケージinstall-peers-cli .install-peers-cli パッケージの依存関係をインストールするCLIです.これは依存関係のインストール後に呼ばれます.幸いprepare 依存関係のインストールの後に呼び出され、開発しているときだけ、ユーザがモジュールをインストールしたときにピア依存関係をインストールしません.
    最初のインストールinstall-peers-cli パッケージ
    yarn add -D install-peers-cli
    
    次にprepare モジュール内のスクリプトpackage.json 呼び出しinstall-peers-cli その中で:
    // package.json
    {
      "scripts": {
        "prepare": "install-peers"
      }
    }
    
    これでエラーを経験することなく、ピア依存関係を使うことができます.モジュールが使用しない限りReact そして、彼の新しい追加Hooks ...

    フックを使っている反応のために
    前の手順に従った場合は、次のようなメッセージが表示されます.このエラーは、React あなたのNodeThankモジュールフォルダで.これでcomment ダンABraovは、このよく知られている問題への解決策を説明します.本題に入りましょう.
    あなたはreact あなたのモジュールのものに存在するフォルダnode_modules リンクを作成します.その後、ホストアプリケーションのフォルダに戻って、このリンクを使用します.
    cd lib/node_module/react
    yarn link
    cd ../../../app
    yarn link react
    
    今、エラーを修正する必要がありますあなたのホストアプリケーションにモジュールを使用することができます!
    あなた全員集合🙌!
    タイポを見ますか?問題を開けるか躊躇しないでくださいarticle's repository