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/のアクセス権限は適切に変更してください。