概要
Node.jsのパッケージマネージャーのnpmはJavaScriptのライブラリーの設置・インストール時によく使います。
その際のnpm installコマンドのオプションで–save-devの意味が分からなかったので、理解するために整理します。
以下のnpm v8の情報を参考にしました。
書式
npm installの書式は以下となります。
npm install (with no args in a package dir)
npm install <tarball file>
npm install <tarball url>
npm install <folder>
npm install [@<scope>/]<name> [--save|--save-dev|--save-optional] [--save-exact]
npm install [@<scope>/]<name>@<tag>
npm install [@<scope>/]<name>@<version>
npm install [@<scope>/]<name>@<version range>
npm i (with any of the previous argument usage)
基本は引数なしで実行すると、package.jsonの内容をベースにインストールします。その他、引数でパッケージ名やパッケージファイルを指定できます。
-g|–globalオプションを指定するとnpmのインストール場所にインストールして、それ以外はローカルのnode_modulesディレクトリーにパッケージをインストールします。
引数を指定してnpm installを実行すると、インストールしたパッケージの依存関係の情報をpackage.jsonに書き込みます。
その際、依存関係の種類に応じて、書き込みオプションが3個あります。
オプション | 書込み先 |
---|---|
-P|–save-prod | dependencies |
-D|–save-dev | devDependencies |
-O|–save-optional | optionalDependencies |
デフォルトは-Pとなります。-D|–save-devはテストツールなどのインストール時に使います。
devDependenciesの依存関係は、npm install –productionやNODE_ENV環境変数にproductionが設定されている場合にインストールされないという意味があります。
結論
npm installのオプションの説明でした。
今回はJestのインストール時に登場した–save-devの意味が分からなかったので、調べました。npm install他、package.jsonの該当プロパティーの意味も確認する必要があり、情報が散らばっていて手間取りました。
ひとまず理解できて安心できたのでよかったです。他にも必要な情報があれば随時情報を追記します。

詳細プロフィール。SNS: Twitter/[email protected]/[email protected]。2022-07-17からgnusocial.jpとweb.gnusocial.jpのサイトを運営しています。WordPressで分散SNSに参加しています。このアカウントの投稿に返信すると、サイトのコメント欄にも反映されます。自称ASD。
Comments
This Article was mentioned on web.gnusocial.jp