こんばんは、cloudpack の @dz_ こと大平かづみです。
Prologue - はじめに
Bluemix というPaaSで、 Node.js のアプリを作って遊んでいます。(もとい、SoftLayer Bluemix Summit 2015 登壇の準備…!)
この投稿では、Bluemix で Node.js アプリケーションを開発するあたり、今の時点の私なりのオススメを書き留めます。
なお、私の Node.js のスキルは初心者と思って下さい(笑) 普段はPHPがメインですし、さらに昔はC/C++で組込み開発がメインでした。
オススメのコーディング環境
さて、まずはコーディング環境のオススメです。試行の結果、以下の環境に落ち着きました。
-
IBM Bluemix DevOps Services
- ウェブIDE
- おそらくOrionベース
- Node.js (javascirpt) のコード補完可能
- ライブ編集 (サーバーを再起動せずコードのみインスタンスに反映)
- Git管理
- GitHub などリポジトリ選択可能
- デバッグ可能
- ほぼリアルタイムログ表示可能
- チケット管理機能とも連携
- ウェブIDE
特に「ライブ編集」「ログ表示」が便利です!
シングルサインオンの実装をしていたので、ローカルではデバッグしにくく、PaaS側のコードを直接変更でき、ログを直接見れるのは重宝します。
Bluemix DevOps Services で Node.js を書くときのトラブルシューティング
node_modules 配下の独自のモジュールを扱う場合の対処
Bluemix でももちろんモジュールの追加が可能です。
- package.json に記述しておくとデプロイの際に自動的にインストールしてくれます。
- アプリディレクトリ内の node_modules ディレクトリを用意して、そこに独自のモジュールを配置することも可能です。
さて、この独自モジュールなんですが、何もせずにデプロイすると、node_modules 配下はデプロイしてくれません…
なぜかというと、プロジェクトにある .cfignore
を見てみてください。 node_modules 配下は明示的に除外されているのがわかります。
node_modules
.cfignore
はどうやら、 Cloud Foundry (※)のデプロイツールで使う除外設定ファイルのようです。 Git の .ignore
と同じように書けそうです。
(※ Cloud Foundry は、Bluemix のインフラベース)
ですので、例えば node_modules/passport-idaas-openidconnect
もデプロイしたい場合は以下のように記述します。
node_modules/*
!node_modules/passport-idaas-openidconnect
ちなみに、 passport-idaas-openidconnect
は Bluemix Single Sign On サービス で使用するモジュールです。(私はこの独自モジュールがデプロイできないせいで、いろいろ遠回りしましたw)
エディタでシンタックスエラーが多発している場合の対処
jsファイルの先頭に /*eslint-env node*/
を記述すると、シンタックスを正しく解釈してくれます。
/*eslint-env node*/
var express = require('express');
...
これは、Bluemix DevOps Services のプロジェクトを作成した際に作られる app.js の先頭に書いてある記述を参考にしました。
他に試した環境
ちなみに、以下も試しました。
- コマンドラインツール (cf コマンド)
- お手軽だが、デプロイがどうしても時間がかかってしまいます。
- 余談、上記にも書いたように node_modules 配下がデプロイができず諦めていたが、最近試したらあっさりできました(笑)
- Eclipse x IBM Eclipse Tools for Bluemix
- 開発環境作成に時間がかかることと、そもそもJava, PHP向けのIDEのため、 Node.js (javascript) に関してプラグインに頼ることになってしまうので、採用しませんでした。
Epilogue - おわりに
まだまだスムーズには行きませんが、だいぶん慣れてきました。作るのは楽しい!また進展あればご紹介します〜
近況
最近
Phalcon関連
- 爆速フレームワーク!! Phalcon PHP Framework
- Meet Volt ! Phalcon 謹製テンプレートエンジン Volt - from 第71回 PHP勉強会
- Meet Phalcon! - Phalcon PHPフレームワークを Nginx on Amazon EC2 にインストール!
Webフレームワーク関連
- [初メモ] はじめての Tomcat 〜 つまづいたところまとめ (Java のバージョン指定、起動パラメータ など)
- Check! はじめての CakePHP2 ポイントまとめ 〜 Blog Tutorial を動かそう
- Check! はじめての CakePHP2 〜 bake でプロジェクトスケルトンを利用する
クラウド・インフラ関連
Amazon Web Services
- Check! はじめての fluentd を Amazon Linux で動かしてみる (ログを PHP から送る)
- Check! はじめての Fluentd 〜 IAMロールで Amazon EC2 と S3 間をセキュアに
- Check! はじめての Zabbix インストール on Debian x Amazon RDS
Azure
技術ブログ寄稿
cloudpack技術ブログでも記事を書いています。