twitter-bootstrap-nodeを作ってnpmに公開したまでの記録

最近ちょっとしたツールを作る時にお世話になっているTwitter Bootstrap。

node.jsのexpressで扱おうとすると自分でbootstrapをダウンロードして、解凍して、expressとbootstrapでJavaScriptCSSのディレクトリ命名規則が違うのが気になってもやもやしつつ、設置して、templateを直して(略

 

と、結構めんどくさい。

 

expressをinstallするとprojectのひな形を作ってくれるコマンドがあるのでそれが勝手にbootstrapを配置して動くようにしてくれないかなと思ったのが始まり。

 https://github.com/takimo/twitter-bootstrap-node 

 

インストールは

$ npm install -g twitter-bootstrap-node

新しくプロジェクトを作りたかったら

$ twitter-bootstrap project

 こんな感じに作ると以下のようになります。

f:id:takimo:20120609111814p:plain

 あとはprojectに移動して、必要になるnpmをインストールしましょう

$ cd project && npm install 

これで使えるようになったので起動します

$ node app.js

f:id:takimo:20120609112519p:plain

 

ここからは裏話。

自分が作ったpackageを公開したい場合はざっくり書くと

  • package.jsonを用意する
  • npm adduserコマンドでユーザー登録を済ませ
  • npm publishで公開

githubのページのURLもpackage.jsonに登録できるのでgithubに公開しておいた方がいいと思いました

 

よく他のnpmで"npm install -g hogehogeして使ってね!"というのはpackage.jsonでコマンド名と実コマンドファイルを結びつけておいてあげる必要があって

"bin": {
    "twitter-bootstrap": "./bin/twitter-bootstrap"
  },

このように書いておく必要があります

 

npmで公開はしたはいいもののテストしていた環境でしか動かなくて涙目になりながら修正したことは内緒です

NodejsでbrookのPromiseを使う

非同期処理が基本なJavaScriptでHTTP通信やDB処理を行うとCallbackの嵐となり、ネストが深く流れが追いにくいコードになりがちです。

なのでNodejsでbrookのPromiseを使えるようにしてみました。
(もしかしたらもっと簡単にやれる方法があったのかもしれないけど…

Makefileを少し書き加えて、Nodejsで使うためのコードを生成しています。