🎱

--save-dev と -g の違いは??(npm install)

2022/10/27に公開

-g について

これはglobal の g ですね。実に分かりやすい!!
その名の通り、globalにインストールされます。

--save-devについて

そもそも--saveなる項目もあるらしい。
まず、これらはどちらもローカルにインストール(node_moduleフォルダが作成されて、そこに入れられる)するオプションであるようだ。これが-gオプションとの違いである。
更に気になるので、--save と --save-devの違いを調べていく。

--save と --save-devの違いについて

--save -> package.jsのdependenciesに記述される。
--save-dev -> package.jsのdevDependenciesに記述される。
なんかきっと、開発環境専用のパッケージと、本番環境でも使うパッケージの使い分けなのだろう。 名前的に。
さて、しかし、ここで気になるのが、実際に具体的にこの振り分けは何が嬉しいのだろうか?ということだ。

振り分けのなにが嬉しいのか調べてみた

前提知識として、npm install を行ったのとは別の環境でnpm installを行った時に、package.jsを参照して依存関係からパッケージがインストールされる。(package.jsは名前通りパッケージ情報を保存するために存在している。)
この別の環境が開発環境であるのなら、dependenciesもdevDependenciesも参照して、パッケージを取ってくるようだ。
しかし、この環境が本番環境(パッケージ化された後)であるならば、dependenciesしか参照しないようだ。

Discussion