これを説明する最も簡単な方法は、あなたのすべてのパッケージについてあなたのpackage.jsonを検索しようとしていて、npmレジストリを使って新しい更新があるかどうかを調べることです。私はその大部分をしています。ループのために、次のために受け入れ:反応の複数の約束でこれをどう扱うか分かりません
import request from 'request'
export const findAllUpdates = (packageInfo) => {
for(prop in packageInfo) {
request('https://registry.npmjs.org/' + prop, function(err, resp) {
json = JSON.parse(resp.body);
if (json['dist-tags'].latest !== packageInfo[prop].version) {
// Do something, we are not the same version so we should
// update some counter.
}
});
}
}
あなたpackageInfo
は依存性またはDEV依存package.jsonからとパッケージlock.jsonまたはyarn.lock
key=>value
の目的であります
重要な部分は、上記の機能の中でインストールしたものを見ています。その後、レジストリを使ってそのパッケージ情報を取得し、レジストリの最新バージョンとインストールしたものとを比較します。コンポーネントの状態をトータルカウントで更新します。
私たちはコールバックhellを入力したことがあります。特にforループを使用して、すべてのパッケージをループしてリクエストしています。
私は変数を作成して、そこにレスポンスを格納することはできません。なぜなら、要求が行われた後にアクセスできないためです。私はここでイベントを使用する方法を知ることはできません。なぜなら、40個のパッケージをdepまたはdevのいずれかにインストールし、起動するイベントがたくさんあるからです。
最終的には、約束を使用することが適切な解決策であるかもしれませんが、約束のコンセプト全体は、.then(() => {})
,.catch(() => {})
というコールバックであり、私を正方形に戻します。
目標はコンポーネントでこれを呼び出すと、そのコンポーネントの状態を更新する必要がある(または少なくとも新しいバージョンを持っている)パッケージの総量で更新することです
任意のアイデア?私はこれについてすべて間違っているのですか?