npm install のオプションについて

全然わからないので調べた。

ドキュメントの説明(NPMの場合)

npm installは、指定されたパッケージをデフォルトで依存関係に保存します。 さらに、いくつかの追加のフラグを使用して、どこにどのように保存するかを制御できます。

  • -P, --save-prod: パッケージは依存関係に表示されます。 -Dまたは-Oが指定されていない場合、これがデフォルトです。

  • -D, --save-dev: パッケージはdevDependenciesに表示されます。

  • -O, --save-optional: パッケージは、あなたのoptionalDependenciesに表示されます。

  • --no-save: 依存関係への保存を禁止します。

上記のいずれかのオプションを使用してpackage.jsonへの依存関係を保存する場合、2つの追加のオプションフラグがあります。

  • -E, --save-exact: 保存された依存関係は、npmの既定のセーム範囲演算子を使用するのではなく、正確なバージョンで構成されます。

  • -B, --save-bundle: 保存された依存関係もbundleDependenciesリストに追加されます。

ドキュメントの説明(yarnの場合)

これは公式ドキュメントの方が詳しいだろう。

ちょっと調べてみた。

うん、全然わからん。

例えばどういうタイミングで npm i -D とするのだろうか?

というわけでそもそもdependenciesとは?というところに着目してみた。

そもそもdependenciesとは

公式ドキュメントにあった。

公式見る癖をつけるようにしていきたい。

Specifying Dependencies

プロジェクトが依存するパッケージを指定するには、package.jsonファイルで使用するパッケージを一覧表示する必要があります。 リストできるパッケージには2種類あります:

  • "dependencies": これらのパッケージは、アプリケーションで本番環境で必要となります。
  • "devDependencies": これらのパッケージは、開発とテストのためにのみ必要です。

つまり、productionで必要なパッケージはdependencies で、developmentで必要なパッケージにはdevDependenciesを付けるということだ。

うん。かんぜんにりかいした。

簡単に依存関係を追加する方法

The --save and --save-dev install flags

依存関係をpackage.jsonに追加する簡単な方法(より素晴らしい方法)は、コマンドラインから行うことです。どのようにしたいかに応じて、 - saveまたは--save-devのいずれかでnpm installコマンドにフラグを立てます。そして、その依存関係を使用してください。

  • package.jsonの依存関係にエントリを追加するには:
npm install --save <package_name>
        or
yarn add <package_name>
  • package.jsonのdevDependenciesにエントリを追加するには:
npm install --save-dev <package_name>
        or
yarn add --dev <package_name>

参考

install | npm Documentation

05 - Working with package.json | npm Documentation

yarn add | Yarn

npm からの移行 | Yarn