私はヤーンがもたらした利益とそれが何をしているのかを知っています。npm
はそうではありません。糸はnpm以上のラッパーですか?
- 糸が
npm
と同じ動作を保持する他のコマンドのいくつかのためにボンネットの下にnpm
を使用していた:私は、しかし、いくつかの疑問を持っていますか? - もしそうでなければ、それらが糸で再実装された理由はありますか?このアプローチには欠点がありますか?
私はヤーンがもたらした利益とそれが何をしているのかを知っています。npm
はそうではありません。糸はnpm以上のラッパーですか?
npm
と同じ動作を保持する他のコマンドのいくつかのためにボンネットの下にnpm
を使用していた:私は、しかし、いくつかの疑問を持っていますか?いいえ、書き換えです。
は、npmクライアントのインフラストラクチャを構築し続けるのではなく、より全体的に問題を調べることに決めました。 の代わりに、のコアである の問題を解決する新しいクライアントを作成しようとした場合はどうなりますか?ロンドンオフィスのSebastian McKenzie は、このアイデアをハッキングし始め、すぐにその可能性について興奮しました 。
- https://code.facebook.com/posts/1840075619545360
(あなたが気づいた場合、いくつかのショートカットなし)これは、同じAPIを提供しています。元のインターフェースが十分に単純で採用を確実にするため、これは(私が推測している)ものです。
これははるかに高速で、npmの典型的な問題(主に非決定的な展開)を解決します。これはトップダウン書き換えでしか達成できず、デープがインストールされている(フェッチ、計算、ダウンロード、リンク)方法が変更され、ロジックが異なります。
このアプローチの欠点は、膨大な作業が必要だということです。通常、あなたはメインのレポをPRするだけですが、彼らは全く違ったことを望んでおり、Facebookには手段があり、彼らはソロになることに決めました。
もう1つの大きな欠点は、npmの古いユーザー全員がその利点をすぐに利用できないことです。これは、アップグレードではなくノードにインストールされていないためです。
私はYarnのソースコードを見て、コマンドごとにカスタムコード(https://github.com/yarnpkg/yarn/tree/master/src/cli/commands)が書かれていることがわかりました。
このアプローチの欠点は、将来、npm
が新しいコマンドを追加すると、Yarnチームが変更を追跡して手動で実装する必要があるということです。
https://code.facebook.com/posts/1840075619545360 – ceejayoz
私はそうは思わない、それはいくつかの同様のAPIを持っていますが、フードの下で異なるデザインです。前のapiが保持するのに十分だったので、同様のapiが実装されました。 –