LoginSignup
18
19

More than 5 years have passed since last update.

Check! Bluemix で Node.js をスピーディーに開発したい! 〜 オススメとトラブルシューティング

Last updated at Posted at 2015-08-27

こんばんは、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 などリポジトリ選択可能
    • デバッグ可能
    • ほぼリアルタイムログ表示可能
    • チケット管理機能とも連携

特に「ライブ編集」「ログ表示」が便利です!

シングルサインオンの実装をしていたので、ローカルではデバッグしにくく、PaaS側のコードを直接変更でき、ログを直接見れるのは重宝します。

Bluemix DevOps Services で Node.js を書くときのトラブルシューティング

node_modules 配下の独自のモジュールを扱う場合の対処

Bluemix でももちろんモジュールの追加が可能です。

  • package.json に記述しておくとデプロイの際に自動的にインストールしてくれます。
  • アプリディレクトリ内の node_modules ディレクトリを用意して、そこに独自のモジュールを配置することも可能です。

さて、この独自モジュールなんですが、何もせずにデプロイすると、node_modules 配下はデプロイしてくれません…

なぜかというと、プロジェクトにある .cfignore を見てみてください。 node_modules 配下は明示的に除外されているのがわかります。

.cfignore
node_modules

.cfignore はどうやら、 Cloud Foundry (※)のデプロイツールで使う除外設定ファイルのようです。 Git の .ignore と同じように書けそうです。

(※ Cloud Foundry は、Bluemix のインフラベース)

ですので、例えば node_modules/passport-idaas-openidconnect もデプロイしたい場合は以下のように記述します。

.cfignore
node_modules/*
!node_modules/passport-idaas-openidconnect

ちなみに、 passport-idaas-openidconnectBluemix Single Sign On サービス で使用するモジュールです。(私はこの独自モジュールがデプロイできないせいで、いろいろ遠回りしましたw)

エディタでシンタックスエラーが多発している場合の対処

jsファイルの先頭に /*eslint-env node*/ を記述すると、シンタックスを正しく解釈してくれます。

*.js
/*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関連

Webフレームワーク関連

クラウド・インフラ関連

Amazon Web Services

Azure

技術ブログ寄稿

cloudpack技術ブログでも記事を書いています。

18
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
19