Grunt.js を使い始めました。セットアップはかなり難しいので、package.json
ファイルを作成する段階にあります。
これに続いて チュートリアル 、それはpackage.json
ファイルを作成する3つの方法があると言います。
最初はnpm install grunt --save-dev
をすることです
しかし--save-dev
はどういう意味ですか?見てみましたが無駄に終わりました。
--save-dev:パッケージはあなたのdevDependenciesに現れます。
によると npm install docs 。
誰かがあなたのモジュールをダウンロードして自分のプログラムで使うことを計画しているなら、おそらく彼らはあなたが使う外部テストやドキュメンテーションフレームワークをダウンロードして構築することを望んでいないし、必要としません。
つまり、npm install
を実行すると、プロジェクトのdevDependenciesはインストールされますが、アプリが依存しているパッケージのdevDependenciesはインストールされません。さらに、あなたのアプリを依存関係として持つ他のアプリはあなたのdevDependenciesをインストールする必要はありません。そのようなモジュールは、アプリを開発するときにのみ必要です(例えば、grunt、mochaなど)。
によると package.json docs
npm install
が何をするかを視覚化することを試みます:Package.jsonファイルで示すことができる(少なくとも)2つのタイプのパッケージ依存関係があります。
モジュールを使用するために必要なパッケージは、 "dependencies"プロパティの下にリストされています。 npmを使用すると、このようにpackage.jsonファイルにこれらの依存関係を追加できます。
npm install --save packageName
モジュールを手助けするのに必要なパッケージ開発あなたのモジュールは "devDependencies"プロパティの下にリストされています。これらのパッケージは他の人がモジュールを使用するのに必要ではありませんが、それらがモジュールの開発を手助けしたいのであれば、これらのパッケージは必要になるでしょう。 npmを使用すると、これらのdevDependenciesをpackage.jsonファイルに次のように追加できます。
npm install --save-dev packageName
Andreasの答えに追加するには、次のようにして依存関係だけをインストールできます。
npm install --production
npm install <package-name> --save
とnpm 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
はそれをあなたのモジュール開発のための依存関係として宣言します。
自問してみてください。インストールされたパッケージは私のモジュールを使うために必要なのでしょうか、それともそれを開発するためだけに必要なのでしょうか。
パラメータ "--save"を使用すると、依存関係はpackage.jsonの#1の内側に入ります。パラメータ "--save-dev"を使用すると、依存関係はpackage.jsonの#2の内側に入ります。
1) "依存関係":これらのパッケージは本番環境のアプリケーションに必要です。
2) "devDependencies":これらのパッケージは開発とテストにのみ必要です
私にとって、最初の答えは少し分かりにくいように思われるので、短く簡潔にします。
npm install <package_name>
は、デフォルトによって、指定されたパッケージを依存関係に保存します。さらに、いくつかの追加フラグを使用して、保存場所と保存方法を制御できます。
npm install <package_name> --no-save
依存関係への保存を防ぎます。
npm install <package_name> ---save-dev
はあなたのパッケージのdevDependencies
を更新します。これらはローカルのテストと開発にのみ使用されます。
もっと読むことができます dc