npmで–save-devは必要?–saveと違う?npm v5 以降はインストール時にデフォルトで –saveとなり、dependenciesに追加されるはずだけど?
上記のような疑問が出ました。
結論
--save-dev
と--save
の役割は違います。
npm installの時はちゃんと使い分けたほうがよさそう。
この問題を考える前提として、 devdependencies dependenciesの違いを理解する必要があります。
devdependencies dependenciesの違い
- devdependenciesは開発者,dependenciesは利用者用の依存関係です。
- 開発者と利用者でインストール内容が変わる。
開発者と利用者について、webpackを例に説明
webpackの依存関係をみると、開発者で67個の依存関係,利用者で23個の依存関係があります。
実際にwebpackの開発に携わる時には67個の依存関係をインストールします。
つまり、自分がそのモジュールの開発者なのか利用者なのかによってインストールしておくべきモジュールが異なります。webpackはよくnpm installして使いますが、この時は利用者として使っていることになります。
- 開発者がインストールするのは、dependenciesとdevdependenciesに書かれているモジュール(全部インストールされる)。
- 利用者がインストールするのは、dependenciesに書かれているモジュール。
- 開発者と利用者のnpm installの方法は異なる。
- 開発者の場合は、package.jsonがあるディレクトリでnpm installする。
- 利用者の場合は、npm install パッケージ名とする。(例えばパッケージ名をtestとすると、npm insatall webpack)
- 開発者と利用者のnpm installの方法は異なる。
- インストール方法
- 利用者用のインストール
$npm install --save パッケージ名
- 開発者用のインストール
$npm install --save-dev パッケージ名
- 開発者でdependenciesだけインストールしたい場合
$npm install --production
ディスカッション
コメント一覧
まだ、コメントがありません