yo webapp でエラーになる場合の対処法[grunt,yeoman]

yeomanのgenerator-webappを利用してプロジェクトを生成する場合、もろもろ苦労したので対処法を記載します。

node, npmのバージョンを確認する

yeoman, grunt, bowerで静的サイト構築(第二回)でnvmでnodeのバージョン管理を紹介しています。

下記の環境でnpm installを実行し、簡単な動作検証をしました。

node        npm
v0.8.26    1.2.30  grunt serve でサーバ起動及びブラウザからのアクセス確認
v0.10.24  1.3.21  grunt serve でサーバ起動及びブラウザからのアクセス確認
v0.11.9    1.3.15  インストール途中で異常終了

※generator-mobileについても同様の検証をしたのですが、v0.8.26で外部からのアクセスが正常に動作しない現象があったため、私はv0.10.24を利用しています。

--skip-install オプションを付けて実行する

$ yo webapp --skip-install

$ bower install

npm installの途中でエラーになることがほとんどなので、プロジェクトディレクトリ/ファイルのみ展開し、bower install, npm installを別で実行しましょう。

npm関連のキャッシュを削除する

  • npm cache clean -f
  • /tmp/配下のファイルを削除する
  • ~/tmp/配下のファイルを削除する

npm install を実行する

一般ユーザで実行すると、gifsicle-1.71.tar.gzのダウンロードが暴走したり、下記のようなエラーが表示されたりします。

✗ Command failed: /usr/bin/install: cannot create regular file `/usr/local/share/man/man1/gifsicle.1': Permission denied
make[2]: *** [install-man1] Error 1
make[1]: *** [install-am] Error 2
make: *** [install-recursive] Error 1

これを回避するにはroot権限でnpm installを実行するのが手っ取り早いです。

root権限で実行したくない場合は、package.jsonからgrunt-contrib-imageminを削除して、一般ユーザでnpm installを実行して、とりあえず環境を構築しましょう。

このままではもちろんimageminタスクは利用できないので、imageminタスクがどうしても必要であればpackage.jsonにgrunt-contrib-imageminを追加してrootでnpm installを再実行しましょう。

root権限で実行した場合は、chown, chgrpでnode_module/のアクセス権限は適切に変更してください。