Help us understand the problem. What is going on with this article?

npmとは yarnとは

この記事の目的

yarnとは何か、npmとは何かという概念を理解することを目的としています。


yarnとは npmとは・・・

Node.jsで動作するパッケージマネージャー

Node.jsとは

Node.jsというのは、JavaScriptでサーバーサイドの処理を可能にさせるプログラム

パッケージマネーシャーとは

「パッケージマネージャとは、コンピュータに何のソフトウェアがインストールされたかを記録し、新しいソフトウェアのインストール・新しいバージョンへのソフトウェアの更新・以前インストールしたソフトウェアの削除を容易に行えるようにするプログラム」
【Debian公式ページ】パッケージマネージャとは


つまり

yarnとnpmはJavaScriptでサーバーサイドの処理を行うために使うプログラム(Node.js)上で使うパッケージマネージャーということです。
下記で一つずつ確認していきましょう。


JavaScriptはもともとフロントエンド言語

  • ブラウザでの画面表示部分、つまりフロントエンドで使用されることを前提に作られたプログラム言語。
  • データベースへのアクセスなどサーバーサイドの処理はできなかった。

Node.jsの誕生でJavaScriptでサーバーサイドの処理が可能に

  • Node.jsが開発されたことで、JavaScriptでサーバーサイドの処理ができるようになった。
  • それに伴い、JavaScriptのフレームワークが開発された。(React、Express、)

フレームワークを使うためにはインストールを簡単にする必要がある

  • 1000個のプログラムで出来ているフレームワークをインストールするとして、そのフレームワークが動くために必要なプログラムを全て手作業でサーバーの適切な場所にコピーし、特定の設定ファイルを書き換え、正常にインストールできたかを確認し、バージョン管理をするのはかなり困難。

パッケージマネージャーがインストールや管理を簡単にする

  • 簡単なコマンドの入力でインストールを完了することができる。

Node.jsで動作するパッケージマネージャー、それがyarnとnpm

:)

npmは

  • Node.jsをインストールすれば一緒にインストールされる。
  • 2009年にNode.jsがリリースされた翌年にnpmがリリースされた。

yarnは

  • 2016年にリリース。npmと互換性があり、npmで使用していたプロジェクト設定ファイル(package.json)がそのまま使える。
  • npmと比べてインストールが速い、セキュリティが高いという特徴がある。
    • セキュリティが高いというのは、インストール時にパッケージが不正に変更されていないかなどをチェックサムを用いて検証することができ、安全なパッケージのインストールが可能であるということ。
  • バージョン管理についても優れていて、yarnではプログラムのインストール後に、yarn.lockというファイルが作成され、それにはインストールしたプログラムが使用している別のプログラム(依存プログラム/パッケージ)のバージョンが明確に書き込まれている。
    • 依存プログラム/パッケージをその後再度インストールしてもバージョンの整合性が保たれるので、バージョン不一致でプロジェクトが動かなくなる危険性が無くなる。
  • npm、homebrew、MacPortsからインストールできる。

【公式ページ】Yarnのインストール

npmとyarnの違い

依存プログラム/パッケージのケア

npm:バージョン違いの依存プログラム/パッケージをインストールしてしまう可能性あり
yarn:yarn.lockファイルにより、バージョン違いの依存プログラム/パッケージのインストールは起こらない

インストール速度

npm:遅い
yarn:早い

参考

【Samurai Blog】JavaScriptのパッケージマネージャーnpmとYarnについて解説します!
【Samurai Blog】【Node.js】初心者も理解できる言語の特徴を体系的に解説!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした