web-dev-qa-db-ja.com

brew、yarn、npmの違いは何ですか?

npmでグローバルにインストールしたreact-nativeパッケージを使用していました。 initコマンドを実行した後、最初の行に表示されるようになりました。以下:

Installing react-native from npm...
Consider installing yarn to make this faster: https://yarnpkg.com

だから、私はそのウェブサイトをチェックしていて、面白そうに見えましたが、それがどうなるか正確にはわかりません。最初は、brewをインストールするためにyarnが必要だと思っていたので、npmをインストールするために糸を引くことができました。しかし今、私はyarnnpmの置き換えだと思います。それは正しい表現ですか?

なぜこんなに多くのパッケージマネージャーが必要なのですか?

AtomVisual Studio Code などのソフトウェアが独自のパッケージマネージャーを持っていると便利だと思います。しかし、開発のために、誰かが4つの異なるパッケージマネージャー(「プライマリソフトウェア」の場合はbrew、yarnパッケージの場合はnpm、バックエンドモジュールの場合はnpm、フロントエンドライブラリ)。このパッケージマネージャーフォレストはどうすれば解くことができますか?

29
user007

私はbrewに精通していませんが、macOS用のHomebrewソフトウェアパッケージ管理システムを意味すると思います。

次に、各システムの目的は次のとおりです。

  1. brew:ソフトウェアのインストール、つまりwgetなどのアプリケーションを使用する準備ができています。
  2. npm:パッケージ(ライブラリ)のインストール。つまり、独自のアプリケーションの構築を支援する機能の一部。
  3. yarn:パッケージのインストールも。

糸にはnpmよりもいくつかの利点があります。主な2つは速度と予測可能性です。ヤーンはnpmのpackage.jsonファイルを再利用し、その構造を変更しません。したがって、yarn installの代わりにnpm installを実行でき、理論的にはすべてが自動的に機能します。

追伸私は同意します https://yarnpkg.com なぜ別のパッケージ管理システムが必要なのかについての十分な背景がありませんが、 素晴らしい記事があります ギャップ。

27
Monsignor

yarn vs npm

yarnとnpmは、どちらもモジュールのインストールと依存関係を管理します。糸はnpmの欠点のいくつかに対処するために構築されました。

Npmを超える糸の最大の利点は

  1. Yarnを使用したパッケージのインストールは並列化されるため、パッケージのインストールは高速になります。
  2. package.jsonは、バージョン番号に関して非常に緩やかな場合があります。 yarn.lock(npm shirkwrapと同様)これをロックダウンして、同じpackage.json常にまったく同じパッケージをインストールします。

  3. yarnを使用すると、一部のパッケージがインストールされている理由を確認できます(依存関係ツリーを理解します)

参照: https://www.sitepoint.com/yarn-vs-npm/

4
priyankaavj

Yarnは、Facebook、Google、Exponent、およびTildeによって構築されたJavaScriptパッケージマネージャーです。 npmにない機能を削除または克服するために作成されます。 npmと比較して

  • 強化されたセキュリティ
  • オフラインモード
  • 並行インストール-したがって、より高速なインストール

もう1つの大きな違いは、yarn.lockファイルですが、npm ^5.x.xこれらはpackage-lock.jsonファイルも提供します。

また、yarnのコマンドはnpmのように機能します。

# Starting a new project
npm init === yarn init

# Installing all the dependencies of the project
npm install === yarn or yarn install

# Adding a dependency
npm install [package] === yarn add [package] # The package is saved to your package.json immediately.
npm install  [package]@[version] === yarn add [package]@[version]
npm install [package]@[tag] === yarn add [package]@[tag]

# Add a dev dependency
npm install [package] --save-dev === yarn add [package] --dev

# Upgrading a dependency
npm update [package] === yarn upgrade [package]
npm update [package]@[version] === yarn upgrade [package]@[version]
npm update [package]@[tag] === yarn upgrade [package]@[tag]

# Removing a dependency
npm uninstall [package] === yarn remove [package]

# View registry information
npm view [package] === yarn info [package]

# List installed packages
npm list === yarn list
npm list --depth === yarn list --depth=0

# Install packages globally
npm install -g [package] === yarn global addb [package]

# Run a defined package script
npm run [script] === yarn run [script]

参照

https://www.sitepoint.com/yarn-vs-npm/

https://scotch.io/@brian_kimo/npm-vs-yarn

公式発表

https://code.facebook.com/posts/184007561954536

3
Sunil Garg

Yarnは、[〜#〜] npm [〜#〜]のように、Node.JSのパッケージマネージャーです。糸はFacebookによって構築されます。 NPMよりも高速で多くの機能を備えています。

主なセールスポイントは次のとおりです。

  • yarn.lockファイルによるセキュリティ(NPMのnpm-shrinkwrap.jsonと同様)すべての依存関係は正確なバージョンでロックされます。したがって、「ただし、私のマシンでは動作します」という苦労はもうありません。誰もがyarn.lockファイルで同じバージョンをロックしています
  • Speed Yarnは(高速)プロキシと(オフライン)キャッシュを使用して、モジュールをより速く配信します。また、すべての依存モジュールのライセンスをチェックするLICENSEチェッカーもあります。
1
MAULIK MODI