webstromでMEAN.IOをデバッグ

MEAN.IOのルートでgultしてみると

デフォルトはdevelopになっていて、

勝手にDebuggerを立ち上げてくれる。

なので、WebstormでやるべきことはこのDebuggerを受け取ること。

なので、

Edit Configurations -> Add New Configuration -> Node.js Remote Debug

Run_Debug_Configurations

といった感じでせっていたら、Debuggerを拾ってくれるはず!

ッと思ったら。ブレイクポイントで止まってくれない。

どうやらNode Debuggerをnode –debug-brk ~~~ で立ち上げないとDebuggerを拾ってくれないみたいです。

ということで、修正。

修正すべきところは、

/gulp/development.js

です。

gulpを立ち上げ直す。

Good!

 

MEAN.IOのデフォルトで入ってるmeanio-usersを引っ張り出してカスタマイズ

MEAN.IO

/node_modules/meanio-users/*

にユーザ登録などを行うパッケージが入っている、

node_modules以下にあるものをカスタマイズするのは抵抗があるので、これを

/packages/custom/にusersというフォルダを作ってそこに移動する。

node_modules上からmeanio-usersは消す。

好き好きだが、一応

/packages/custom/…./packages.jsonからもdependenciesを削除する。

/packages/custom/…./server/views/includes/foot.html

でパッケージをインクルードしていく。

これでOK。

 

gulpでbowerのパッケージを自動挿入

gulp-injectを使う。

インストール(開発環境だけでいいので、–save-dev)

挿入されるhtmlを編集

パッケージの挿入先を指し示すためgulpfile.js編集

取り敢えずテスト的にbower

リターン連続

でangular-translateをインストール

bower.jsonを確認

dependenciesに挿入されて

bower_componentsフォルダにangular-translateがインストールされているのを確認。

では、gulp wiredepを実行。

↓はhead.html, foot.htmlに設置

これでちゃんとhead.html, foot.htmlにbowerからのcss, javascriptが挿入されていることを確認。

基本は相対パスで挿入されてしまう。

絶対パスがいいので↓のようにgulpfile.jsを変更

 

 

 

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で使えない。

Node.jsでSSHからサーバを起動するけどBroken Pipeで止まっちゃう

件名の通り、

で起動したNode.jsのサーバがSSHでのログインが切れると止まってしまう。

正確な理由は、サーバのログ出力でエラーが発生したから。

Broken PipeするとSSHでのログインが切れる、ログインが切れると標準出力がなくなる、そうすると、、エラーが発生してサーバが落ちる。

っということ。

なのでログの吐き出し先を示してやる、かつバックグラウンドで走るように”&”をつけてやる。

これで、ログオフしてもserverが走り続けてくれる。。

と思ったらダメでした。

npmで発行してるnodeでリリース用のアプリがありました。

をインストール。

これでOK。

意味はserver.jsをサービスとして実行したということ。