Node.js もろもろ

昨晩 nvm を試してみた訳ですが、基本的に

$ source ~/.nvm/nvm.sh

しないと使えません。昨晩の記憶はまるで無いので

$ which nvm

で何も出力されないのでびっくりしたんですが、.nvm/nvm.sh の中で shell な手続きとして定義されているのか。

とりあえず

試験とかを意識しつつ express で作り始めてみます。テーマ的には model が FacebookAPI で云々、というカンジ。とりあえず scaffold をナニ。

$ express myapp

   create : myapp
   create : myapp/package.json
   create : myapp/app.js
   create : myapp/public
   create : myapp/routes
   create : myapp/routes/index.js
   create : myapp/views
   create : myapp/views/layout.jade
   create : myapp/views/index.jade
   create : myapp/public/javascripts
   create : myapp/public/images
   create : myapp/public/stylesheets
   create : myapp/public/stylesheets/style.css

   dont forget to install dependencies:
   $ cd myapp && npm install

$

ふむ、npm install せい、とありますな。以下が myapp/package.json の中身。

{
    "name": "application-name"
  , "version": "0.0.1"
  , "private": true
  , "dependencies": {
      "express": "2.5.0"
    , "jade": ">= 0.0.1"
  }

とりあえず試験なツールも、って思ってるのですがどうしたものか。なんとなく express って prefix が付いた試験なナニがあったなと。

$ npm search express |grep '^expresso'
expresso              TDD framework, light-weight, fast, CI-friendly                =tjholowaychuk =kkaefer
expressobdd           Add basic multilevel describe/it bdd constructs to expresso   =eugeneware           expresso expressobdd bdd test testing tests
$

とりあえず BDD はハードル高いのでとりあえず expresso からナニ。というか express がアタマに付いたナニが結構ありますね。expresso は入れておきます。

$ npm install expresso -g

expresso@0.9.2 ってナニが導入されました。とりあえず package.json に追加しといた方が良いのだろうな。あ、とりあえず git init しとくか。

$ git init
$ git add .
$ git commit -m 'initial commit'

で、package.json を以下に修正。

{
    "name": "application-name"
  , "version": "0.0.1"
  , "private": true
  , "dependencies": {
      "express": "2.5.0"
    , "jade": ">= 0.0.1"
    , "expresso": ">= 0.9.2"
  }
}

んで、npm install します。

$ npm install
(中略
express@2.5.0 ./node_modules/express 
├── mime@1.2.4
├── mkdirp@0.0.7
├── qs@0.3.1
└── connect@1.7.2
jade@0.16.4 ./node_modules/jade 
├── mkdirp@0.1.0
└── commander@0.2.1
expresso@0.9.2 ./node_modules/expresso 
$

emacs のバックアップは ignore したいスね、ってことで .gitignore も追加。

$ git add package.json
$ git add .gitignore
$ git add node_modules
$ git commit -m 'add expresso to package.json & npm install & add .gitignore'

あら

node_modules リポジトリに add しちゃ駄目らしい。ちょっとドキュメントの類を色々と確認した方が良いみたい。commit は別途巻き戻す方向でナニ。