【NPM】package.jsonの中のdependenciesとdevDependenciesの違い
package.jsonの中のdependenciesとdevDependenciesの違いについて。
目次
- dependenciesとdevDependenciesの違い
- package.jsonの役割
- dependenciesに追加する方法
- devDependenciesに追加する方法
- npm installとは?
- npm installとnpm updateの違い
- どっちを使うべきか?
- (補足)dependenciesのみに追加する方法
package.jsonの例
{
"name": "twitter",
"private": true,
"dependencies": {
"@rails/actioncable": "^6.0.0",
"@rails/activestorage": "^6.0.0",
"@rails/ujs": "^6.0.0",
"@rails/webpacker": "5.2.1",
"turbolinks": "^5.2.0"
},
"version": "0.1.0",
"devDependencies": {
"webpack-dev-server": "^3.11.2"
}
}
dependenciesとdevDependenciesの違い
本番環境で使うパッケージか、開発環境で使うパッケージかの違い。
通常、開発環境は変更内容の即時コンパイルやテスト機能など、本番では不要な処理を実行することが多い。
本番にも適用すると重くなってしまうため、本番と開発環境で必要な機能を分けている。
・dependencies
本番環境で使うパッケージ。
・devDependencies
開発環境でのみ使うパッケージ。ユニットテストやJSの縮小やコンパイルなど。
package.jsonの役割
package.jsonに記述してあるパッケージは、実際にインストールしたものではない。
package.jsonはどのパッケージのどのバージョンをインストールするかを指定した買い物リスト。
実際にインストールしたパッケージは、package-lock.jsonに記載される。(自動記載のため編集不要)
package.json (買い物リスト)
↓
npm install (インストール)
↓
package-lock.json (買ったもの)
dependenciesに追加する方法
npm install <パッケージ名>
を実行すると、package.jsonとpackage-lock.jsonのdependenciesの2つに追記される。
devDependenciesに追加したい場合は--save-dev
オプションをつける。
devDependenciesに追加する方法
オプションで--save-dev
をつける。
npm install --save-dev <パッケージ名>
を実行すると、package.jsonとpackage-lock.jsonのdevDependenciesの2つに追記される。
npm installとは?
npm installを実施すると、package.jsonに記述されたパッケージがインストールされる。
dependenciesもdevDependenciesもどちらもインストールされる。
npm installとnpm updateの違い
・npm install
package.jsonに記載してあるパッケージをインストールする。package-lock.jsonやyarn.lockに記載されている依存関係のあるパッケージもインストールする。
・npm update
package.jsonに記載されている最新のパッケージをインストールする。依存関係で不足しているパッケージがあればそれらも新たにインストールする。
https://docs.npmjs.com/cli/v7/commands/npm-install
https://docs.npmjs.com/cli/v6/commands/npm-update
どっちを使うべきか?
npm update
がおすすめ。不足しているパッケージもインストールしてくれる。
(補足)dependenciesのみに追加する方法
オプションで--production
をつける。
・$npm install --production
Author And Source
この問題について(【NPM】package.jsonの中のdependenciesとdevDependenciesの違い), 我々は、より多くの情報をここで見つけました https://qiita.com/shizen-shin/items/a40e0c1c58cff9664f32著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .