モジュールの開発時にピア依存関係を処理する方法
4070 ワード
同輩の依存関係は何ですか?
Peer dependencies 特定の種類の依存関係は再利用可能なモジュールにとって本当に有用です.
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
Reference
この問題について(モジュールの開発時にピア依存関係を処理する方法), 我々は、より多くの情報をここで見つけました https://dev.to/yvonnickfrin/how-to-handle-peer-dependencies-when-developing-modules-18faテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol