web-dev-qa-db-ja.com

-spm-devはnpm install grunt --save-devで何を意味しますか

Grunt.js を使い始めました。セットアップはかなり難しいので、package.jsonファイルを作成する段階にあります。

これに続いて チュートリアル 、それはpackage.jsonファイルを作成する3つの方法があると言います。

最初はnpm install grunt --save-devをすることです

しかし--save-devはどういう意味ですか?見てみましたが無駄に終わりました。

264
Vennsoh

--save-dev:パッケージはあなたのdevDependenciesに現れます。

によると npm install docs

誰かがあなたのモジュールをダウンロードして自分のプログラムで使うことを計画しているなら、おそらく彼らはあなたが使う外部テストやドキュメンテーションフレームワークをダウンロードして構築することを望んでいないし、必要としません。

つまり、npm installを実行すると、プロジェクトのdevDependenciesはインストールされますが、アプリが依存しているパッケージのdevDependenciesはインストールされません。さらに、あなたのアプリを依存関係として持つ他のアプリはあなたのdevDependenciesをインストールする必要はありません。そのようなモジュールは、アプリを開発するときにのみ必要です(例えば、grunt、mochaなど)。

によると package.json docs

編集:npm installが何をするかを視覚化することを試みます:

  • あなたのプロジェクト
    • 依存関係がインストールされました
      • 依存関係がインストールされました
        • 依存関係がインストールされました
        • devDependencyがインストールされていません
      • devDependencyがインストールされていません
    • devDependencyがインストールされています
      • 依存関係がインストールされました
      • devDependencyがインストールされていません
304

Package.jsonファイルで示すことができる(少なくとも)2つのタイプのパッケージ依存関係があります。

  1. モジュールを使用するために必要なパッケージは、 "dependencies"プロパティの下にリストされています。 npmを使用すると、このようにpackage.jsonファイルにこれらの依存関係を追加できます。

    npm install --save packageName
    
  2. モジュールを手助けするのに必要なパッケージ開発あなたのモジュールは "devDependencies"プロパティの下にリストされています。これらのパッケージは他の人がモジュールを使用するのに必要ではありませんが、それらがモジュールの開発を手助けしたいのであれば、これらのパッケージは必要になるでしょう。 npmを使用すると、これらのdevDependenciesをpackage.jsonファイルに次のように追加できます。

    npm install --save-dev packageName
    
93
Lonnie Best

Andreasの答えに追加するには、次のようにして依存関係だけをインストールできます。

npm install --production
32
machinehead115

npm install <package-name> --savenpm install <package-name> --save-devに関するnpmからのドキュメントはここにあります:

https://docs.npmjs.com/getting-started/using-a-package.json#the-save-and-save-dev-install-flags

package.jsonファイルは、開発中のモジュールに関するメタデータを宣言します。前述のコマンドは両方ともこのpackage.jsonファイルを変更します。 --saveはインストールされたパッケージ(この場合はgrunt)をあなたのモジュールの依存関係として宣言します。 --save-devはそれをあなたのモジュール開発のための依存関係として宣言します。

自問してみてください。インストールされたパッケージは私のモジュールを使うために必要なのでしょうか、それともそれを開発するためだけに必要なのでしょうか。

6
Niko Kovacevic

パラメータ "--save"を使用すると、依存関係はpackage.jsonの#1の内側に入ります。パラメータ "--save-dev"を使用すると、依存関係はpackage.jsonの#2の内側に入ります。

1) "依存関係":これらのパッケージは本番環境のアプリケーションに必要です。

2) "devDependencies":これらのパッケージは開発とテストにのみ必要です

3
Sathesh

私にとって、最初の答えは少し分かりにくいように思われるので、短く簡潔にします。

npm install <package_name>は、デフォルトによって、指定されたパッケージを依存関係に保存します。さらに、いくつかの追加フラグを使用して、保存場所と保存方法を制御できます。

npm install <package_name> --no-save依存関係への保存を防ぎます。

npm install <package_name> ---save-devはあなたのパッケージのdevDependenciesを更新します。これらはローカルのテストと開発にのみ使用されます。

もっと読むことができます dc

1
AnnaKlein