npm install grunt --save-devでの-save-devの意味


277

私はGrunt.jsを使い始めたばかりです。セットアップはかなり難しく、package.jsonファイルを作成するところです。

このチュートリアルに従って、package.jsonファイルを作成するには3つの方法があると説明しています。

最初は行うことです npm install grunt --save-dev

しかし、どういう--save-dev意味ですか?探してみたが無駄に終わった。


なんとか答えが見つかると思います。gruntjs.com/getting-started - npmjs.org/doc/json.html#devDependencies
Vennsoh

チュートリアルリンクが壊れている
SteveC、

回答:


317

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

npm install docsによると。

誰かがプログラムでモジュールをダウンロードして使用することを計画している場合、おそらく使用する外部テストまたはドキュメントフレームワークをダウンロードしてビルドすることを望まないか、必要としないでしょう。

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

package.jsonのドキュメントによると

編集:何を視覚化する試みnpm install

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

2
デフォルトでは、dev依存関係でインストールされませんが、それでどのようにインストールしますか?npm install --dev国旗?
StanleyZheng 2014

4
@stanzheng私はあなたが何を知る必要があるかわかりません。プロジェクトに参加してを実行するnpm installと、プロジェクトのdevDependenciesもインストールされます。依存関係のdevDependenciesをインストールしたくない。npmパッケージで開発する場合はgit clone xxx、そのプロジェクトを実行npm installして実行します。
Andreas Hultgren 2014

3
「npm installを実行すると、アプリの依存関係のdevDependenciesはインストールされません」は正しくありません。package.jsonがあり、npmパッケージの「devDependencies」しか含まれていない場合、「npm install」と入力すると、これらの「devDependecies」がインストールされます。
コア

6
私は理解しようとしましたが、理解しませんでした。次に、視覚化を理解しようとしましたが、理解しませんでした。各箇条書き項目はどういう意味ですか?フォルダー?取り消し線の意味は何ですか?存在しないディレクトリ?それが本当なら、どうすれば存在しないものを徹底的にリストアップできますか?
Rafael Eyng、2015

8
明確に言うと、npm installがプロジェクトで実行されると、package.jsonのすべてのdevDependenciesがインストールされますが、プロジェクトを新しいnpmパッケージとしてパッケージ化して公開すると、他の誰かがnpm installでパッケージをインストールしても、devDependenciesはインストールされません彼らのシステムにインストールされています。そうですか?@stanzhengまたはnpm install --productionを実行して、dev依存関係を除くすべてをpackage.jsonにインストールできます
rwilson04

99

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

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

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

    npm install --save-dev packageName

35

Andreasの回答に追加するには、次を使用して依存関係のみをインストールできます。

npm install --production

7

以下のためのNPMからの文書npm install <package-name> --saveとは、npm install <package-name> --save-devここで見つけることができます:

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

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

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

#2。「devDependencies」:これらのパッケージは、開発とテストにのみ必要です


5

私にとって、最初の答えは少しわかりにくいので、短くて簡潔にするために:

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

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

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

あなたはdcuでもっと読むことができます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.