一般的なインストールに関する説明はGetting Startedで読んでほしい。そのあとにより詳細な情報を得たければ、これを読んでもらいたい。
Gruntはgruntとgrunt-cliの2つから成る。
- npmモジュール
gruntはプロジェクトのローカルにインストールすべき。これは、プラグインの読み込みやタスクの実行などに関するコードとロジックを構成する。 - npmモジュール
grunt-cliはグローバルにインストールすべき。これはgruntコマンドのPATHを通し、どこからでも実行可能にする。grunt-cli自体が何かをするということはないが、バージョンに関わらずプロジェクトのローカルにインストールされたgruntの読み込みと実行を任されている。
手動でgruntとgruntのプラグインをインストールするよりも、package.jsonにdevDependenciesとしてgruntとgruntのプラグインを定義し、npm installでインストールする方が望ましい。package.jsonを利用することはgruntのインストールをより容易にし、エラーの発生を減少させる傾向がある。
Getting StartedのInstalling grunt and grunt pluginsで説明しているようにnpm install grunt --save-devを実行すると、npmは最新のgruntをプロジェクトにインストールし、package.jsonのdevDependenciesに追加する。
tilde version rangeは自動的にpackage.jsonに記述される。対象のバージョンのパッチはnpmでインストールされる。
特定のバージョンをインストールする場合、npm install grunt@VERSION --save-dev(VERSIONはインストールしたいバージョンを指定)と実行すれば、プロジェクトに指定のgruntをインストールでき、package.jsonのdevDependenciesにそれが記述される。
tilde version rangeは自動的にpackage.jsonに記述される。この振る舞いを望まない場合、手動でpackage.jsonを編集しバージョン番号から〜(チルダ)を削除する。そうすれば定義したバージョンに固定される。
定期的に新しい機能が開発され、ビルドされたgruntがnpmに登録される。これらは公式の@latestリリースとして公開されることはなく、通常、ビルドナンバーかalpha/beta/releaseなどの候補として指定されるものになる。
選んだバージョンに関わらず、tilde version rangeはpackage.jsonに定義される。これは、ビルドしたものを破壊しうる、互換性のないパッチリリース、開発版がnpmでインストールされてしまうかもしれないので、良くない。
このケースで非常に重要なのは、手動でpackage.jsonを編集し、バージョン番号からチルダを削除すること。そうすれば定義したバージョンに固定される。
開発最先端の公開されていないgruntを使いたい場合、git URL as a dependencyの説明に従い、commit-ishとして実際のcommit SHA(ブランチ名ではない)を定義すること。そうすることで、その
バージョンのgruntを利用することが保証できる。
そのgit urlは、gruntの公式repoかそのforkされたrepoになる。
Getting Startedの"Installing the CLI"で説明しているように、npm install -g grunt-cliと実行すれば最新のgrunt-cliがインストールされる。これによりgruntのパスが通り、どこからでも実行可能になる。
既にgruntをグローバルインストールしている場合、まずnpm uninstall -g gruntでgruntを削除する必要がある。
npm install grunt-cli --save-devでプロジェクトのローカルにgrunt-cliをインストールした状態でgruntをどこからでも実行可能にしたい場合、./node_modules/.bin/gruntのように明示的にローカルパスを定義しておく必要がある。
このようなgrunt-cliの利用はサポートされていない。