1. ホーム
  2. node.js

[解決済み] なぜyarnをインストールするのにnpmを使わないのですか?

2023-06-30 22:29:07

質問

yarn (代替の npm クライアント) を発表したブログ記事 を実行するのが最も簡単な方法です。 npm install -g yarn を実行することです。しかし、もしあなたが のページを参照してください。 にアクセスすると、プラットフォーム別のインストール ページには "npm install yarn" はリストされておらず、"Alternatives" ページでは 3 つのオプションのうちの 3 番目としてのみ提供されています。さらに npm install yarn を実行すると、非推奨の警告が表示されます、 "It is recommended to install the native installation method for your environment." そこで私の疑問は、もし npm install が最も簡単なインストール方法であるなら、なぜそれが彼らのドキュメントで推奨されていないのでしょうか?また、Yarnを npm ?

どのように解決するのですか?

編集 (2020/11/23)しました。

コメントでYarnのアドバイスの更新情報を提供してくれた@Kissakiに感謝します。

Yarn 2.x では、Yarn チームは彼らのアドバイスを変更し、現在は npm を介してツールをインストールすることを推奨しています。このアドバイスは、プロジェクトごとに使用する Yarn のバージョンをロックすることの利点を中心に述べています。これにより、プロジェクトはYarnのバージョン間の変動に対して弾力的になることができます。

新しい Yarn から インストールページ :

<ブロッククオート

システム全体で単一のパッケージマネージャを使用することは、常に問題でした。 問題でした。安定させるために、インストールは環境間で同じパッケージマネージャのバージョンで実行される必要があります。 そうでなければ、バージョン間で偶発的な破壊的変更を引き起こす危険性があります。 そうでなければ、バージョン間の偶発的な破壊的変更を引き起こす危険があります。 ロックファイルという概念が最初に導入されたのはそのためです。 そして、Yarnはある意味、あなたの最初のプロジェクトの依存関係です。 そして、Yarn はある意味であなたの最初のプロジェクトの依存関係であるため、それをロックすることは理にかなっているはずです。

この理由から、Yarn 2 以降はプロジェクト単位で管理されることを意図しています。 プロジェクト単位で管理されることを意図しています。

これは、プロジェクト単位でビルドツールのバージョンをロックする他の方法と似ています。以下を参照してください。 Gradle ラッパー をご覧ください。

Yarnのスタンドアローンインストールの利点は、特にYarnチームの方向転換により、かなり早く崩れ去りました。npm 経由でのインストールが推奨されるようになり、Yarn 2.x ではスタンドアロン インストールのための説明はもはや彼らのサイトでは提供されていないようです。


オリジナルの回答です。

Yarnプロジェクトのメンテナによると、npm経由でYarnをインストールすると はプロジェクトの目標に反しています。 でインストールすることは、プロジェクトの目標に反し、問題を引き起こす可能性があり、一般的に、プラットフォーム固有のインストール方法よりも悪いとされています。


推奨されるプラットフォーム固有のインストールに対する利点。

注意してください。 npmによるYarnのインストールは一般的に推奨されません。npmによるYarnのインストールは非決定的で、パッケージは署名されておらず、実行される整合性チェックは基本的なSHA1ハッシュのみであり、システム全体のアプリをインストールする際のセキュリティリスクとなる。

これらの理由から、オペレーティングシステムに最も適したインストール方法でYarnをインストールすることが強く推奨されます。

  • npm を介して別のパッケージマネージャーユーティリティである Yarn を実行すると、エッジケースの問題が発生することがあります (詳細は 問題 2072 )
  • システムパッケージマネージャー経由のインストールは、Yarn を npm から切り離し、npm なしで Yarn を実行できるようにします。
  • システムパッケージマネージャーは通常定期的に実行され、Yarnを更新し続ける。
  • npm 経由での Yarn のインストールは 遅い

へのメリット npm install -g yarn :

  • クイック&イージー ( npm install -g yarn )
  • どのようなnpm環境でも可能(プラットフォーム非依存型)
  • Node.js開発者にとって馴染み深いパラダイムとプロセス
  • 簡単にアップデートできる ( npm update -g yarn )
    • Yarn の更新コマンドが存在する ( yarn self-update となっているようですが が壊れました。
  • システムのパッケージ・マネージャに依存しない
  • プロジェクトごとに異なるバージョンの Yarn を使用したり、異なるバージョンの Node.js を使用することができます。 nvm

Windows には公式のパッケージ マネージャーがないため (Windows Update を除いて)、システム パッケージ マネージャーによるインストール推奨の論拠は崩れがちです。また、Chocolatey のような Windows パッケージ マネージャーは、しばしば自動更新を行うように設定されていません。

私は、これに関する Yarn チームの決定に完全に同意するわけではありませんが、いくつかの公正なポイントを指摘しています。Yarn プロジェクトはまだ若く、もし npm の代替となるのであれば、主要なインストーラーとして npm を推奨するのは意味がないでしょう。

とはいえ、ほとんどの場合、npm を介したインストールは今のところうまくいっているようです。


ソースはこちらです。