この記事では、2人の人気のあるJavaScriptパッケージマネージャー、YarnとNPMに飛び込み、それぞれの長所と短所を比較して、プロジェクトに適したツールを選択するのに役立ちます。
コアポイント
基本
過去には、開発者がほとんどのプロジェクトを作成および管理するには、シンプルなテキストエディターで十分でした。しかし、今では、インターネットは地球を揺さぶる変更を受けています。現在、かなり単純なプロジェクトでさえ、何百または数千のスクリプトと、ある種の自動化ツールなしでは管理できない複雑なネストされた依存関係を含めることができます。これは、パッケージマネージャーが登場する場所です。パッケージマネージャーは、プロジェクトの依存関係を複数の方法で自動的に処理するツールです。たとえば、パッケージマネージャーを使用すると、パッケージをインストール、アンインストール、更新、アップグレードし、プロジェクト設定の構成、スクリプトの実行などを行うことができます。すべての退屈な作業はパッケージマネージャーによって行われます。エンコード自体に焦点を当てる必要があります。
NPMは、ノードパッケージマネージャーの略です。 2010年にリリースされ、Web開発の新しい時代を開きました。これに先立ち、プロジェクトの依存関係は手動でダウンロードおよび管理されていました。 NPMは、Webをより高いレベルに駆動するワンドです。
npmには、実際には3つの部分が含まれています
NPMエクスペリエンスのあらゆる側面を管理するための
aYarnは、さらに別のリソースネゴシエーターを表しています。 Yarn Package Managerは、2016年10月にFacebookがリリースしたNPMの代替品です。ヤーンの最初の目標は、パフォーマンスやセキュリティの問題など、NPMの欠点に対処することでした。 Yarnはすぐに安全で高速で信頼性の高いJavaScript依存性管理ツールになりました。
しかし、NPMチームはレッスンを学び、不足している機能を実装することでNPMの欠点をすぐに補いました。
全体的な状況を理解するために履歴をすばやく確認しましょう:
これら2つのパッケージマネージャーは、パッケージ管理競争に匹敵し、同様の機能を提供します。しかし、どちらを使用するかを判断するのに役立ついくつかの違いがまだあります。
このチュートリアルの残りの部分では、NPMとYARNの主な類似点と相違点を調べます。
YARN対npm:インストール比較
npmと糸のインストールプロセスから始めます。パッケージマネージャー自体のインストール
代わりに、糸は明示的にインストールする必要があります。まず、YARN:
をインストールする必要があります
その後、プロジェクトルートディレクトリでYARNセットバージョンコマンドを実行することにより、プロジェクトごとに使用できます。npm install -g yarn
最新バージョンに更新する場合は、次のコマンドを実行します。
yarn set version berry
YARNを使用すると、プロジェクトごとに別のバージョンを使用できます。
NPMで同じことを行うには、NVM(ノードバージョンマネージャー)をインストールする必要があります。 NVMを使用して複数のノードバージョンをインストールする方法は次のとおりです。プロジェクトの依存関係のインストール
yarn set version latest
さあ、プロジェクトの依存関係をインストールする方法を見てみましょう。
npmインストールを実行すると、依存関係が順番にインストールされます。端末の出力ログには情報が豊富ですが、読みにくいです。
これまでのところ、NPMとYARNのインストールパッケージコマンドが異なることがわかりました。次のセクションでは、より多くのコマンドを検討します。
npmとyarnコマンドを比較
npmとyarnは多くのコマンドを共有していますが、いくつかの異なるコマンドがあります。まず、同じコマンドのいくつかを探りましょう:
npmインストール - save-dev [パッケージ] | dev [パッケージ]:開発依存関係
yarn vs. npm:安全な比較 NPMの主な批判の1つは、セキュリティに関するものです。以前のNPMバージョンには、いくつかの深刻なセキュリティの脆弱性がありました。
バージョン6の時点で、NPMはインストール中にパッケージを監査し、脆弱性が見つかったかどうかを示します。インストールされたパッケージでNPM監査を実行することにより、このチェックを手動で実行できます。脆弱性が見つかった場合、NPMはセキュリティアドバイスを提供します。
上記の図に示すように、NPM監査修正を実行してパッケージの脆弱性を修正することができます。これを修正できる場合、依存関係ツリーも修正されます。
YARNとNPMは両方とも、パケットの整合性を確保するために暗号化ハッシュアルゴリズムを使用します。
yarn vs. npm:機能比較コマンドと同様に、NPMとYARNはいくつかの機能を共有していますが、いくつかの違いがあります。まず、これら2人のパッケージマネージャーが共有する共通の機能を調べましょう。
package.json(npmとyarnがプロジェクトの依存関係を追跡するために使用されるファイル)では、バージョン番号が必ずしも正確ではありません。代わりに、バージョンの範囲を定義できます。これにより、特定のメジャーバージョンのパッケージを選択できますが、NPMがいくつかのバグを修正する可能性のある最新のパッチをインストールできるようにします。
理想的なセマンティックバージョンの世界では、パッチバージョンには大きな変更が含まれていません。しかし、残念ながら、これは必ずしもそうではありません。 NPMで使用される戦略により、両方のマシンが同じPackage.jsonファイルで終了する可能性がありますが、パッケージの異なるバージョンがインストールされています。これにより、エラーが導入される場合があります。
パッケージバージョンの不一致を回避するために、インストールされている正確なバージョンはパッケージロックファイルに固定されています。モジュールが追加されるたびに、NPMとYARNはそれぞれパッケージロックとYarn.Lockファイルを作成(または更新します)。このようにして、Package.jsonで許可された一連のバージョンを定義しながら、別のマシンがまったく同じパッケージをインストールすることを確認できます。
ワークスペースを使用してワークスペースを使用すると、複数のプロジェクトで依存関係を管理するためのモノレポを使用できます。これは、ワークスペースと呼ばれる複数のサブパッケージを備えた単一のトップレベルのルートパッケージがあることを意味します。
npxコマンドは、./node_modules/.binからスクリプトを実行するために使用されます。また、プロジェクトの依存関係にインストールせずに、NPMレジストリからパッケージを実行することもできます。たとえば、次のコマンドを実行して、新しいReactアプリケーションを作成できます。
npm install -g yarn
私たちが探求する残りの機能は、糸に固有のものです。
yarn set version berry
Zeroインストール
lime
NPMと糸のさまざまな類似点と相違点をカバーしていますが、どちらが優れているか、どの方が選択すべきかをまだ決定していません。いつものように、答えは私たちの欲望とニーズに依存します。
一般的なガイドとして、次の提案を要約します。
NPMとYARNの間で明確な決定を下すのに苦労している場合は、PNPMを確認できます。これは、これら2つのパッケージマネージャーの利点を組み合わせようとし、パッケージ管理プールで3番目に大きい巨人です。
YARN対NPM:結論
現代のWeb開発のためのパッケージマネージャーの重要性について学び、市場で最も人気のある2人の競合他社を比較しています。それらはすべて独自の利点と短所を持っています。また、自分に合ったものを選択するには、ニーズを明確に理解する必要があります。どちらが良いかを決定する最良の方法は、両方を試して、どちらがより良いパフォーマンスを発揮するかを確認することです。
最後に、考えすぎないでください。 1つを選択して楽しい部分に移動します:素晴らしいアプリを作成してください!
yarn vs. npmについてのfaq
YARNとNPMはどちらもJavaScriptのパッケージマネージャーですが、いくつかの重要な違いがあります。 YarnはFacebookによって開発されており、NPMの欠点のいくつかに対処することを目指しています。より高い速度、より良いセキュリティ、より信頼性の高い依存関係管理を提供します。一方、NPMは、ユーザーベースが大きいNode.jsのデフォルトのパッケージマネージャーです。また、シンプルな構文のため、初心者が使用する方が簡単です。
はい、糸は通常npmよりも高速です。これは、YARN並列インストールパッケージがインストールプロセスを大幅に高速化するためです。一方、NPMはパッケージを順番にインストールしますが、これは遅くなる可能性があります。
Yarnには、インストールされているパッケージのコードを実行する前に、その完全性を検証するChecksumという機能があります。これにより、NPMにはないセキュリティの追加レイヤーが追加されます。ただし、NPMは最近のリリースでセキュリティ機能を大幅に改善しています。
技術的には、同じプロジェクトで糸とNPMの両方を使用することは可能ですが、これは推奨されません。これは、糸とNPMが依存関係を異なる方法で処理するためであり、プロジェクトの矛盾やエラーにつながる可能性があるためです。
YARNはロックファイルを使用して、プロジェクト依存関係のバージョンをロックします。これにより、すべてのマシンで、すべてのインストールがnode_modulesでまったく同じフォルダー構造を生成することが保証されます。 NPMはロックされたファイルも使用しますが、糸ほど厳格ではありません。
YARNは、一般に、その厳格なファイルのロックとチェックサム機能のため、NPMよりも信頼性が高いと考えられています。ただし、NPMは最近のリリースで信頼性を大幅に改善しています。
NPMには、より長い存在のため、より大きなコミュニティとより利用可能なパッケージがあります。しかし、ヤーンはますます人気が高まっており、成長するコミュニティがあります。
Yarnの構文はNPMの構文とどのように比較されますか?
初心者の場合、糸またはnpmの方がいいですか?
以上がYarn vs NPM:あなたが知る必要があるすべての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。