vagrant環境でソースをホストに置いているとnpm周りでハマる

VirtualBoxをproviderにしたvagrant環境で、ゲストがLinuxソースコードはホスト(Mac)においてあるような場合。

  • npmをホストで動かすと、場合によりCプログラムをMac用にビルドしたりするので、それをLinuxのゲストで動かそうとするとハマる。(踏んだのはPhantomJSだった。)必ず、プログラムを動かすホストで動かす。
  • マウントのときにumaskをちゃんと設定しておかないと、パーミションの実行権限が立たなくてハマる。 config.vm.synced_folder direct_src_dir, "/home/vagrant/hoge/",:mount_options => ['umask=000']
  • リンクを張るようなビルドをするやつがいるとハマる。
  command: |
    npm install --no-bin-links
    chdir=/home/vagrant/hoge