npm installやnpm ciでdependenciesのみインストールする方法!

JavaScriptやNode.jsプロジェクトでは、パッケージ管理ツールとして多くの場合、npm(Node Package Manager)が使われます。通常、npm installnpm ciを使って、開発時に必要なすべてのパッケージをインストールします。

しかし、本番環境にデプロイする際などは開発時のみ必要なパッケージ(devDependencies)を除外してdependenciesのみをインストールしたい場合があります。

この記事では本番(production)環境で必要なパッケージ(dependencies)のみをインストール方法をわかりやすく解説します。

dependenciesのみするインストール方法

dependenciesのみインストール方法には以下の方法があります。全ての方法でdependenciesのみインストールできますが、方法2と方法3は非推奨です。

  • 方法1: --omit=devオプションを用いる方法(推奨)
  • 方法2: --only=prodオプションを用いる方法(非推奨)
  • 方法3: --productionオプションを用いる方法(非推奨)
  • 方法4: 環境変数NODE_ENVを設定する方法

--omit=devオプションを用いる方法(推奨)

--omit=devオプションを使用すると、環境変数NODE_ENVに関係なく、devDependenciesを除外してdependenciesのみをインストールすることができます。

# package.json を基にインストールする場合
npm install --omit=dev

# package-lock.json を基にインストールする場合
npm ci --omit=dev

補足

npm v8以降ではこの--omit=devオプションが推奨されています。npm v6以前ではこの後に説明するnpm install --only=prodを用いて、npm v3.3.0以前ではnpm install --productionを用いていたみたいです。

npmバージョン使用方法推奨状況
v8以降--omit=dev推奨
v6以前--only=prod非推奨
v3.3.0以前--production非推奨

--only=prodオプションを用いる方法(非推奨)

以前は--only=prodオプションを使用して、dependenciesのみをインストールするのが一般的でしたが、現在は非推奨です。

# package.json を基にインストールする場合
npm install --only=prod

# package-lock.json を基にインストールする場合
npm ci --only=prod

--only=prod--omit=devのエイリアスでありDEPRECATEDです。以下のドキュメントにも記載されています。

  • only
    • DEPRECATED: Use --omit=dev to omit dev dependencies from the install.
    • When set to prod or production, this is an alias for --omit=dev.
npm公式ドキュメント: only

実際に--only=prodオプションを使用してインストールしてみると、--omit=devを使用するように推奨されます。

$ npm install --only=prod
npm WARN config only Use `--omit=dev` to omit dev dependencies from the install.

--productionオプションを用いる方法(非推奨)

以前は--productionオプションを使用して、dependenciesのみをインストールするのが一般的でしたが、現在は非推奨です。

# package.json を基にインストールする場合
npm install --production

# package-lock.json を基にインストールする場合
npm ci --production

--production--omit=devのエイリアスでありDEPRECATEDです。以下のドキュメントにも記載されています。

  • production
    • DEPRECATED: Use --omit=dev instead.
    • Alias for --omit=dev
npm公式ドキュメント: production

実際に--productionオプションを使用してインストールしてみると、--omit=devを使用するように推奨されます。

$ npm install --production
npm WARN config production Use `--omit=dev` instead.

環境変数NODE_ENVを設定する方法

環境変数NODE_ENVproductionに設定すると、dependenciesのみをインストールすることができます。

# package.json を基にインストールする場合
NODE_ENV=production npm install

# package-lock.json を基にインストールする場合
NODE_ENV=production npm ci

NODE_ENVはNode.js自体にも影響を与える環境変数であるため、設定を適切に行わないと動作に問題を引き起こす可能性があります。

本記事のまとめ

この記事では本番(production)環境で必要なパッケージ(dependencies)のみをインストール方法について、説明しました。

  • --omit=devオプションを用いてdependenciesのみをインストールするのが推奨されている。
  • 環境変数NODE_ENV=productionを利用する方法もあるが注意が必要。

お読み頂きありがとうございました。