WindowsのVagrant+CentOSで共有フォルダでnpm関係でエラーが出る件[未解決]
Windows7上のVagrantでCentOS6.5を動かしている状態で、
共有フォルダ内で「yo angular」したら
以下のようなエラーが大量に出た。
npm ERR! code EPERM npm ERR! errno -1 npm ERR! code: 'EPERM', npm ERR! Please try running this command again as root/Administrator. npm ERR! tar.unpack untar error
「/home/vagrant」以下とかだと問題無く動くのにどうやら
共有の「/vagrant」以下で発生する問題っぽい。
まだ解決していないけど、手がかりっぽいサイトをまとめておく。
■Working with npm and symlinks through Vagrant on Windows
http://perrymitchell.net/article/npm-symlinks-through-vagrant-windows/
■running a Vagrant box on Windows fails due to path length issues
https://github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows
■Vagrant + シェルスクリプトでPHP開発環境をプロビジョニングしてみたメモ
http://k-holy.hatenablog.com/entry/2013/09/05/084237
■provisioning, run: “always” doesn’t
https://groups.google.com/forum/#!topic/vagrant-up/BF_L7-A1iCU
■VirtualBox(Ubuntu)で共有フォルダするときの注意。
http://rubellum.hatenablog.com/entry/20110508/1304835867
■WindowsのVMでnpm install時にモジュールのパスが255文字を超えてしまう場合
http://qiita.com/aooni_kun/items/7d3ded7b1a51886f21dc
■Windowsでのファイルパス長の制限でnpmのパッケージが使えない
http://ja.stackoverflow.com/questions/1990/windows%E3%81%A7%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%91%E3%82%B9%E9%95%B7%E3%81%AE%E5%88%B6%E9%99%90%E3%81%A7npm%E3%81%AE%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%8C%E4%BD%BF%E3%81%88%E3%81%AA%E3%81%84
■Node npm windows file paths are too long to install packages
http://stackoverflow.com/questions/26155135/node-npm-windows-file-paths-are-too-long-to-install-packages
う~ん。。共有フォルダで直に作業するのは微妙かも。。
検索でこちらに飛びました。
完全な形での解決ではないですが、とりあえず以下の手順で回避出来ました。
1. cmd.exe を管理権限で起動する
2. vagrant up
3. /vagrant以外の場所にnode_modulesインストール用のフォルダを作成 (ex ~/node_modules
4. プロジェクト内のnode_modulesフォルダを削除
5. sudo ln -s ~/node_modules /path/to/node_modules
6. npm install