MEAN.IOをVagrantの共有フォルダで使うのに向いてない

今までの開発の方式にならってMEAN.IOを使うのにも

Vagrantの共有フォルダで開発をしていたが、結論から言うと

MEAN.IOを使うときはVagrantの共有フォルダは絶対に使わないほうがいい。

MEAN.IOの折角の便利な機能が全然使えなくなるし、

エラーが連発する。

工夫したら使えるようにする事もできなくはないが、

断然効率が悪い。

原因の多くは、Vagrantの共有フォルダでchmodができないことにある。

頑張って結局できなかったことがおおくて、悔しかったので記録しておく。

Vagrantの共有フォルダでNode.jsを編集するたびに自動再起動する

結論から、

私の結論としてはnodemonを使うしかないかと。

ソース監視の方式に

nodemon

supervisor

node-dev

pm2

っといったアプリがありますが、すべてデフォルトではVagrantの共有フォルダに反応してくれません。

試行錯誤で結局全て試してしまったので、紹介する。

Nodemonをインストール

nodemonをインストール

後はnodeコマンドの代わりにnodemonを使うだけ

これがスタンダードなやり方。

VagrantのSynced folderを使っている場合には遅くするために”L”というオプションをつけて、

っとしなくてはいけないのですが、これが何故か上手くいかない。

何故かと言うと、↑のコマンドではファイルの更新を監視する対象(watch)

が「*.*」っとなっている、これでは同階層のファイルに対する変更しか監視しない。

監視したい対象は自分で指定する必要がある。

私の場合はこんな感じ。

これでOK。

Vagrantの共有フォルダで更新を監視したいだけなら、ココまでの部分でOK。

以降は蛇足。

Supervisorのインストール。

supervisorをインストールした。

無視するファイルとディレクトリの指定は -i

npmでインストールをかけたときに異常に再起動しないために

としてみたけど、結局VagrantのSynced Folderでは、これも結局使えない。

Node-devのインストール

PM2のインストール

$ npm install pm2 -g

こうです。

そうするとこう。

ただひとつ残念なのが、今まで標準出力でリアルタイムに監視できてたログが見えなくなってしまうこと、標準出力がどこに言っているかというと

~/.pm2/logs/ ここ

ここに、

エラー:server-error-0.log

標準出力:server-out-0.log

っとわけて収納されている。

リアルタイム監視をしたいなら

っとすればリアルタイム監視ができます。

pm2での監視もういいよってなったらこう。

ただSynced Folderで使えない。

Vagrant upで立ち上がらない。。

とすると

なぜだか、急にvagrantが立ち上がらなくなってしまった。

立ち上がらない、というより↓みたいなメッセージが止まらない

原因を探ることもできるけど、

まずvagrantをアップグレードしてみる。

取り敢えず消します。

vagrant upを試してみた。

まずは、

を試してみても、エラーが出ている

また

まだ治らない。。

ちょっと一旦この問題は置いておいて違うフォルダでvagrantを実行すると

のエラーが発生

これを

と書き換えればOK。

これで、

の問題は解決。

でも、まだ元の

が繰り返す問題はまだ未解決。

いろいろやってもこの問題はどうしても解決しません。

残念ながら。

再インストールするしかない。

ということで、

一応これで解決しますが、残念ながら初期状態に戻ってしまった。

 

 

VagrantでCentOS7.2をインストールしようとしてやめました。

取り敢えず、インストールするディレクトリを作成。

CentOS7.2をインストール。

思い出してみたら結構重かったので、昔に追加したBOXを確認して

そこらからインストール。

結局、CentOS6.4をインストールしました。