# yarn と npm の違いと開発時の注意

## パッケージマネージャとは何か
  パッケージマネージャとは、コンピュータに何のソフトウェアがインストールされたかを記録し、新しいソフトウェアのインストール・新しいバージョンへのソフトウェアの更新・以前インストールしたソフトウェアの削除を容易に行えるようにするプログラムのこと。
  パッケージマネージャーとは(https://www.debian.org/doc/manuals/aptitude/pr01s02.ja.html)
  
## npm とは
 javascript のパッケージマネージャ。node.js をインストールしたら npm もインストールされる。
 
## npmがyarnよりも優れている点
 node.js をインストールしたら自動で npm もインストールされるので、パッケージマネージャの導入が少し楽。`npm install` をすると `package-lock.json` というファイルが生成されて、javascript のライブラリ間のバージョンの依存関係を管理してくれる。

## yarn とは
  javascript のパッケージマネージャ。facebook が作ったらしい。npm と互換性があるので同じ`package.json` が使える.だから npm から yarn への乗り換えも可能。`yarn install`をすると、`yarn-lock.json`ファイルが生成されて、npm の package-lock.json と同様にライブラリ間のバージョンの依存関係を管理してくれる。

## yarnがnpmよりも優れている点
npm よりもインストールが早い。npm は直列で packege をインストールするのに対して、並列でインストールをするのでインストールが数倍早くなる。

## 開発時の注意点
　yarnでライブラリの管理をしているのに npm コマンドの `npm install hoge` でライブラリをインストールをしてしまうと、ライブラリの依存関係が壊れてしまうので注意！npm で管理している逆の場合も然り。
　もし yarn でライブラリの管理をしているのに npm コマンドの `npm install hoge` でライブラリをインストールをしてしまった場合は、各パッケージマネージャの lock ファイルである `package-lock.json` と `yarn.lock` と `node-module` フォルダを削除して再度 yarn を用いてライブラリのインストールをすると依存関係が直ります。npm で管理をしている際も同様の手順。
 


---

## Page Navigation

- Canonical URL: https://tips.weseek.co.jp/Tips/JavaScript/yarnとnpmの違い
- Permalink: https://tips.weseek.co.jp/5fb74fd9a1ba4200489a4c0e
- Parent: [JavaScript](/5fb74e7aa1ba4200489a4bd1.md)
- Children: 0 total
- Total descendants: 0
- Siblings: 6 total
  - [Express](/65069da24603e7ff39a6b3db.md)
  - [Sequelize](/65069da24603e7ff39a6b3d7.md)
  - [Streams](/5fb74f7ea1ba4200489a4bf8.md)
  - [nodist](/5fb74fa7a1ba4200489a4c05.md)
  - [デバッグの勘所](/5fb75061a1ba4200489a4c26.md)
  - [命名規則](/60ae84d41091010049bed55d.md)
- Last updated: 2020-11-20T05:10:49.738Z by takuya
- Full page listing (all children regardless of count): https://tips.weseek.co.jp/_api/v3/page-listing/children?id=5fb74fd9a1ba4200489a4c0e
