Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
38
Help us understand the problem. What is going on with this article?
@ryouzi

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

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で管理されているパッケージになります。

参考にしたサイト

Node.js を5分で大雑把に理解する
パッケージマネージャのnpmとは
npmとpackage.json
yarn (+ webpack) を使ってみる
webpack で始めるイマドキのフロントエンド開発

38
Help us understand the problem. What is going on with this article?
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
38
Help us understand the problem. What is going on with this article?