環境
- Windows8
- nodejs 0.10.13
- grunt v0.4.5
- npm 1.3.2
症状
grunt-imageminをインストールしようとしたら、以下のようなエラーが大量にでてきてました。最初は結構うまくいっている様子だったのですが途中からエラーのオンパレード・・。
$ npm install grunt-imagemin
...
npm ERR! tar.unpack error reading C:\Users\*****\AppData\Roaming\npm-cache\is-zip\1.0.0\package.tgz
npm ERR! Error: OK, write
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! cwd C:\apps\myapps
npm ERR! node -v v0.10.13
npm ERR! npm -v 1.3.2
npm ERR! code OK
npm ERR! tar.unpack error reading C:\Users\*****\AppData\Roaming\npm-cache\is-zip\1.0.0\package.tgz
npm ERR! Error: OK, close
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! cwd C:\apps\myapps
npm ERR! node -v v0.10.13
npm ERR! npm -v 1.3.2
npm ERR! code OK
npm http 304 https://registry.npmjs.org/pend
やった事
情報が少なかったのでWeb上で出ていた以下の手段はことごとくやってみました。が、いずれもダメでした。
npm cache clean
C:\<username>\AppData\Roaming\npm
のパーミッション変更(変更できなかった)npm config set dev true
C:\Users\<username>\AppData\Local\Temp
以下のnpm関連フォルダの削除package.json
と同階層にあるnode-modules
フォルダの削除- 管理者権限での
npm install grunt-imagemin
の実行 npm install grunt-imagemin --save-dev
でのインストール- nodejsのクリーンインストール
npm install --no-bin-links grunt-contrib-imagemin
(たぶん意味ない)
その他にもWindows8でgrunt-imageminをインストールするときはjpegtran-bin
の最新版は使えないという
情報があったので、npm install jpegtran-bin@0.2.0
してみたり。
解決方法
結果的にはnpmのバージョンを最新にして、管理者権限でインストールできました。コマンドプロンプトやPowerShellを管理者権限で立ち上げて
$ npm install -g npm
$ npm install grunt-imagemin
で解決です。てっきりnodeをインストールしたときに同梱されるnpmで問題ないかと思っていたのですが、そんなことは無いんですね・・。ただ、Windows7の同僚は普通にインストールできていたので、Windows8だけの問題なのかもしれません。
参考
- http://blog.unsweets.net/2014/11/npmerrorenoent-stat.html
- http://qiita.com/Syn/items/140e6c3431e9cc8b06d1
- http://blog.mitsuruog.info/2014/12/angular-fullstack-in-the-wild.html
- http://meganetops.com/?p=43
- https://github.com/gruntjs/grunt-contrib-imagemin/issues/109
- http://askubuntu.com/questions/269727/npm-errors-when-installing-packages-on-windows-share
- http://stackoverflow.com/questions/19569990/npm-install-doesnt-work-in-windows-powershell
- http://blog.unsweets.net/2014/11/npmerrorenoent-stat.html
- https://github.com/npm/npm/issues/5133
- https://github.com/npm/npm/issues/3664
- https://github.com/npm/npm/issues/3190