ホームページ > ウェブフロントエンド > jsチュートリアル > Yarn vs NPM:あなたが知る必要があるすべて

Yarn vs NPM:あなたが知る必要があるすべて

Jennifer Aniston
リリース: 2025-02-09 09:28:13
オリジナル
396 人が閲覧しました

Yarn vs npm: Everything You Need to Know

この記事では、2人の人気のあるJavaScriptパッケージマネージャー、YarnとNPMに飛び込み、それぞれの長所と短所を比較して、プロジェクトに適したツールを選択するのに役立ちます。

コアポイント

  • YarnとNPMはどちらも人気のあるパッケージマネージャーであり、それぞれに利点と短所があります。 Facebookが開発したYarnは、より速く、安全で、依存関係管理においてより信頼性が高くなります。 node.jsのデフォルトのパッケージマネージャーとして、NPMはユーザーベースが大きくなり、初心者が使用する方が簡単です。
  • YARNパラレルインストールパッケージ、通常はNPMよりも高速(シーケンシャルインストールパッケージ)。ただし、これら2つのパッケージマネージャーの最新バージョンは同じ速度です。
  • セキュリティの観点から、Yarnはチェックサムを使用して、パッケージコードを実行する前に、インストールされた各パッケージの整合性を検証します。 NPMは、インストール中のパッケージ監査など、最近のリリースでのセキュリティ機能を大幅に改善しました。
  • Yarnは、Plug’n’Play、ゼロインストール、ビルトインライセンスチェッカーなどのユニークな機能を提供します。ただし、NPMよりも多くのディスクスペースが必要です。糸とNPMの選択は、個々のニーズとワークフローの好みに基づいている必要があります。

基本

過去には、開発者がほとんどのプロジェクトを作成および管理するには、シンプルなテキストエディターで十分でした。しかし、今では、インターネットは地球を揺さぶる変更を受けています。現在、かなり単純なプロジェクトでさえ、何百または数千のスクリプトと、ある種の自動化ツールなしでは管理できない複雑なネストされた依存関係を含めることができます。これは、パッケージマネージャーが登場する場所です。

パッケージマネージャーは、プロジェクトの依存関係を複数の方法で自動的に処理するツールです。たとえば、パッケージマネージャーを使用すると、パッケージをインストール、アンインストール、更新、アップグレードし、プロジェクト設定の構成、スクリプトの実行などを行うことができます。すべての退屈な作業はパッケージマネージャーによって行われます。エンコード自体に焦点を当てる必要があります。

NPMは、ノードパッケージマネージャーの略です。 2010年にリリースされ、Web開発の新しい時代を開きました。これに先立ち、プロジェクトの依存関係は手動でダウンロードおよび管理されていました。 NPMは、Webをより高いレベルに駆動するワンドです。

npmには、実際には3つの部分が含まれています

NPMエクスペリエンスのあらゆる側面を管理するための

a
    ウェブサイト
  • a登録巨大なパブリックパッケージデータベースにアクセスします
  • a
  • コマンドラインインターフェイス(CLI)端末を介してNPMと相互作用するため。
  • しかし、ほとんどの人がNPMについて話すとき、彼らは通常、最後のもの、つまりCLIツールを参照します。新しいノードインストールごとにデフォルトのパッケージマネージャーとして提供されます。これは、すぐに使用を開始できることを意味します。 NPMの使用方法を掘り下げたい場合は、ノードパッケージマネージャーガイドを参照してください。
  • Yarnは、さらに別のリソースネゴシエーターを表しています。 Yarn Package Managerは、2016年10月にFacebookがリリースしたNPMの代替品です。ヤーンの最初の目標は、パフォーマンスやセキュリティの問題など、NPMの欠点に対処することでした。 Yarnはすぐに安全で高速で信頼性の高いJavaScript依存性管理ツールになりました。

    しかし、NPMチームはレッスンを学び、不足している機能を実装することでNPMの欠点をすぐに補いました。

    全体的な状況を理解するために履歴をすばやく確認しましょう:

    • 2010:NPMがリリースされ、ノードをサポートします。
    • 2016:Yarnが発行。 NPMよりも高いパフォーマンスを示しています。また、Yarn.Lockファイルを生成し、リポジトリの共有と正確な複製をより簡単で予測可能にします。
    • 2017年:NPM 5がリリースされました。 Yarn.Lockに応じて、Package-lock.jsonファイルの自動生成を提供します。
    • 2018:NPM 6がリリースされ、セキュリティの改善があります。 NPMは、依存関係をインストールする前に、セキュリティの脆弱性をチェックします。
    • 2020:YARN 2およびNPM 7リリース。両方のパッケージには強力な新機能があり、このチュートリアルの後半で表示されます。
    • 2021:Yarn 3はさまざまな改善でリリースされました。

    これら2つのパッケージマネージャーは、パッケージ管理競争に匹敵し、同様の機能を提供します。しかし、どちらを使用するかを判断するのに役立ついくつかの違いがまだあります。

    このチュートリアルの残りの部分では、NPMとYARNの主な類似点と相違点を調べます。

    YARN対npm:インストール比較

    npmと糸のインストールプロセスから始めます。

    パッケージマネージャー自体のインストール

    上記のように、

    NPMはノードにプリインストールされているため、NPMを手動でインストールする必要はありません。

    代わりに、糸は明示的にインストールする必要があります。まず、YARN:

    をインストールする必要があります

    その後、プロジェクトルートディレクトリでYARNセットバージョンコマンドを実行することにより、プロジェクトごとに使用できます。
    npm install -g yarn
    ログイン後にコピー
    ログイン後にコピー
    この場合、ベリーは設定したいバージョンです。

    最新バージョンに更新する場合は、次のコマンドを実行します。
    yarn set version berry
    ログイン後にコピー
    ログイン後にコピー

    YARNを使用すると、プロジェクトごとに別のバージョンを使用できます。

    NPMで同じことを行うには、NVM(ノードバージョンマネージャー)をインストールする必要があります。 NVMを使用して複数のノードバージョンをインストールする方法は次のとおりです。

    プロジェクトの依存関係のインストール
    yarn set version latest
    ログイン後にコピー

    さあ、プロジェクトの依存関係をインストールする方法を見てみましょう。

    npmインストールを実行すると、依存関係が順番にインストールされます。端末の出力ログには情報が豊富ですが、読みにくいです。

    YARNインストールパッケージを使用するには、YARNコマンドを実行します。 YARNパラレルインストールパッケージは、NPMよりも速い理由の1つです。 Yarn 1を使用している場合、糸の出力ログが簡潔で視覚的に簡単に区別できることがわかります。また、簡単に理解するためにツリー形式でソートされています。しかし、バージョン2と3では、ログはそれほど直感的ではありません。

    これまでのところ、NPMとYARNのインストールパッケージコマンドが異なることがわかりました。次のセクションでは、より多くのコマンドを検討します。

    npmとyarnコマンドを比較

    npmとyarnは多くのコマンドを共有していますが、いくつかの異なるコマンドがあります。まず、同じコマンドのいくつかを探りましょう:

    • npm init |
    • npm run |
    • npmテスト|
    • npmパブリッシュ|
    • npmキャッシュクリーン|
    • これらのコマンドにより、2人のマネージャーを簡単に切り替えることができますが、混乱を招く可能性のあるいくつかの異なるコマンドがあります。次のリストにあるものを見てみましょう:
    • npmインストール|
    npmインストール[パッケージ] |

    npmインストール - save-dev [パッケージ] | dev [パッケージ]:開発依存関係

      npm uninstall [パッケージ] |
    • npm uninstall - save-dev [パッケージ] |
    • npmアップデート|
    • npmアップデート[パッケージ] |
    • Yarnには、NPMにはないユニークなコマンドもあります。たとえば、なぜコマンドは、パッケージが必要な理由を示しています。依存関係、ローカルモジュール、またはプロジェクトの依存関係です。
    • yarn vs. npm:速度とパフォーマンス
    • YARNまたはNPMがパッケージをインストールする必要があるときはいつでも、一連のタスクを実行します。 NPMでは、これらのタスクはパッケージによって実行されます。つまり、1つのパッケージが完全にインストールされた後、次のパッケージまで続くことを意味します。代わりに、Yarnはこれらのタスクを並行して実行し、パフォーマンスを向上させます。
    • 両方のマネージャーはキャッシュメカニズムを提供していますが、ヤーンはもう少し良くなるようです。ゼロインストールパラダイム(機能比較セクションに表示される)を実装することにより、ほぼすぐにパッケージをインストールできます。各パッケージをキャッシュしてディスクに保存するため、次回このパッケージをインストールするときに、パッケージがディスクからオフラインにインストールされているため、インターネット接続さえ必要ありません。
    YARNにはいくつかの利点がありますが、最新バージョンではYARNとNPMは同等の速度です。したがって、ここでは明確な勝者を定義することはできません。

    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では、同等のDLXコマンドを使用して同じ結果を達成できます。

    私たちが探求する残りの機能は、糸に固有のものです。
    yarn set version berry
    ログイン後にコピー
    ログイン後にコピー

    Zeroインストール

    Zeroインストールは、.yarnフォルダーにあるプロジェクトディレクトリにキャッシュを保存します。 YarnやYarn add

    などのコマンドを使用すると、Yarnは.pnp.cjsファイルを作成します。このファイルには、プロジェクトパッケージのロードに使用される依存関係階層ノードが含まれています。そのため、すぐにアクセスできます。

    Plug’N’Play

    Plug’N’Playは、代替インストール戦略です。 YARNはnode_modulesディレクトリを生成せず、ノードへの解析を残しますが、代わりにディスク上の場所にパッケージをマップする単一の.pnp.cjsファイルを生成します。この機能は、プロジェクトの起動をスピードアップし、依存関係ツリーを最適化し、インストールをスピードアップし、もちろんnode_modulesフォルダーの必要性を排除できます。

    lime

    Yarnにはライセンスチェッカーが組み込まれています。これは、アプリケーションを開発する際のさまざまなシナリオで非常に役立ちます。

    YARN対NPM:どのパッケージマネージャーを選択するか

    NPMと糸のさまざまな類似点と相違点をカバーしていますが、どちらが優れているか、どの方が選択すべきかをまだ決定していません。いつものように、答えは私たちの欲望とニーズに依存します。

    一般的なガイドとして、次の提案を要約します。

    • 現在のワークフローに満足している場合は、他のツールをインストールし、ディスクスペースが不十分な場合は、NPMを選択します。
    • Plug’N’Playなどの強力な機能が必要な場合は、NPMで欠落している機能の一部が必要で、十分なディスクスペースがあります。Yarnを選択してください。

    NPMとYARNの間で明確な決定を下すのに苦労している場合は、PNPMを確認できます。これは、これら2つのパッケージマネージャーの利点を組み合わせようとし、パッケージ管理プールで3番目に大きい巨人です。

    YARN対NPM:結論

    現代のWeb開発のためのパッケージマネージャーの重要性について学び、市場で最も人気のある2人の競合他社を比較しています。それらはすべて独自の利点と短所を持っています。また、自分に合ったものを選択するには、ニーズを明確に理解する必要があります。どちらが良いかを決定する最良の方法は、両方を試して、どちらがより良いパフォーマンスを発揮するかを確認することです。

    最後に、考えすぎないでください。 1つを選択して楽しい部分に移動します:素晴らしいアプリを作成してください!

    yarn vs. npmについてのfaq

    糸とNPMの主な違いは何ですか?

    YARNとNPMはどちらもJavaScriptのパッケージマネージャーですが、いくつかの重要な違いがあります。 YarnはFacebookによって開発されており、NPMの欠点のいくつかに対処することを目指しています。より高い速度、より良いセキュリティ、より信頼性の高い依存関係管理を提供します。一方、NPMは、ユーザーベースが大きいNode.jsのデフォルトのパッケージマネージャーです。また、シンプルな構文のため、初心者が使用する方が簡単です。

    糸はnpmよりも速いですか?

    はい、糸は通常npmよりも高速です。これは、YARN並列インストールパッケージがインストールプロセスを大幅に高速化するためです。一方、NPMはパッケージを順番にインストールしますが、これは遅くなる可能性があります。

    Yarnのセキュリティは、NPMのセキュリティとどのように比較されますか?

    Yarnには、インストールされているパッケージのコードを実行する前に、その完全性を検証するChecksumという機能があります。これにより、NPMにはないセキュリティの追加レイヤーが追加されます。ただし、NPMは最近のリリースでセキュリティ機能を大幅に改善しています。

    同じプロジェクトで糸とnpmを使用できますか?

    技術的には、同じプロジェクトで糸とNPMの両方を使用することは可能ですが、これは推奨されません。これは、糸とNPMが依存関係を異なる方法で処理するためであり、プロジェクトの矛盾やエラーにつながる可能性があるためです。

    npmと比較して糸の依存関係に対処する方法は?

    YARNはロックファイルを使用して、プロジェクト依存関係のバージョンをロックします。これにより、すべてのマシンで、すべてのインストールがnode_modulesでまったく同じフォルダー構造を生成することが保証されます。 NPMはロックされたファイルも使用しますが、糸ほど厳格ではありません。

    糸はnpmよりも信頼性が高くなっていますか?

    YARNは、一般に、その厳格なファイルのロックとチェックサム機能のため、NPMよりも信頼性が高いと考えられています。ただし、NPMは最近のリリースで信頼性を大幅に改善しています。

    Yarnのコミュニティサポートは、NPMのコミュニティサポートとどのように比較されますか?

    NPMには、より長い存在のため、より大きなコミュニティとより利用可能なパッケージがあります。しかし、ヤーンはますます人気が高まっており、成長するコミュニティがあります。

    npmから糸に切り替えるという課題は何ですか?

    NPMからYARNへの切り替えの課題のいくつかには、新しい構文の学習、既存のプロジェクトの移行、Yarnの厳格な依存関係管理への適応が含まれます。

    Yarnの構文はNPMの構文とどのように比較されますか?

    YARNの構文は、npmの構文とはわずかに異なります。たとえば、Yarnインストールパッケージを使用するには、コマンド「Yarn Add」を使用して、NPMで「NPMインストール」を使用できます。

    初心者の場合、糸またはnpmの方がいいですか?

    numは、より単純な構文とより大きなコミュニティのために、初心者が使用するのが簡単であると考えられていることがよくあります。ただし、Yarnはより高度な機能を提供し、より経験豊富な開発者に最適です。

以上がYarn vs NPM:あなたが知る必要があるすべての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート