LoginSignup
72
62

nvm, Node.js, package.json, npm, yarn, webpackの違いについて

Last updated at Posted at 2018-01-03

株式会社TECH LUCKという会社で代表兼エンジニアをしている齊藤です。

Node.jsを使おうとすると、nvmnpmyarnpackage.jsonなど色々な横文字が出てきて大変だったので、それらについてザックリとまとめてみました。
間違いなどがあった場合はコメントいただけると幸いです。

Node.js

Node.jsとは、サーバーサイドで動くJavaScriptになります。
詳細は以下の記事を参考にしてみてください。
https://qiita.com/non_cal/items/a8fee0b7ad96e67713eb
https://qiita.com/hshimo/items/1ecb7ed1b567aacbe559

nvm

nvmとは、Node Version Managerの略で、上記のNode.jsのバージョン管理するパッケージになります。
Node.jsは多くのバージョンがリリースされています。nvmNode.jsを管理することで、Node.jsのバージョン管理が簡単になります。

nodebrew

nodebrewもNode.jsのバージョン管理システムになります。nvmでもnodebrewのどちらでもNode.jsのバージョン管理をすることができるということです。
nvmと違って、プラットフォームに依存せず簡単にバージョンが切り替えられるらしいです。(あんまりよく知らない)

npm

npmとは、Node Package Managerの略で、Node.jsで作られたパッケージやライブラリを管理するツールになります。
パッケージマネージャーとはライブラリやパッケージの管理ツールのことです。 パッケージマネージャを使うことで、使いたいライブラリの導入や削除を簡易にしたり、パッケージ同士の依存関係を管理することができます。

package.json

package.jsonは、パッケージの依存関係を記述したjsonファイルになります。
このファイルに、プロジェクト毎に必要なパッケージの名前とバージョンを記述すれば、npmが自動で必要なパッケージをインストールしてくれます。
インストールしたパッケージが依存しているパッケージや、さらにそれが依存しているパッケージも自動でインストールしてくれるので、開発環境ごとにインストールさえるパッケージが違うということが起こりません。

yarn

yarnとはパッケージマネージャーのnpmの上位互換のようなツールです。
yarnを使うとnpmの以下の課題を解決することが可能です。

  • インストールが遅い
  • インストール結果に一貫性がない
  • セキュリティ上の懸念がある

yarnnpmで管理されているパッケージになります。
また、package.jsonに対応しているので、npmpackage.jsonを使っている場合はすぐに移行できるようです。

webpack

webpackは、Webアプリケーションに必要なリソースの依存関係を解決し、CSSやJavaScriptなどのアセットを生成するビルドツールです。
Webアプリケーションのビルドツールは他にも、GruntGulpと呼ばれるものが有名です。GruntGulpなどはここでは説明しないので、興味があれば調べてみてください。
webpacknpmで管理されているパッケージになります。

参考にしたサイト

72
62
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
72
62