Node.js 0.8.8 を Mac で動かす (Snow Leopard)
ちょっと Node を使いたくなったので入れてみた。
Node をインストールする
Mac なら nodejs.org で [INSTALL] をクリックすると node-v0.8.8.pkg をダウンロードできる。
ダウンロードしたパッケージを実行すればハイおしまい。
npm でモジュールをインストールする
Node のモジュールは npm で簡単にインストールできる。
今回はテンプレートエンジンの ejs, MVC フレームワークの express をインストールする。
# npm install -g ejs express
ここで -g オプションを付けると「グローバルインストール」となり、/usr/local/lib/node_modules 以下にインストールされる。
ちなみに出てきた警告
... npm http 200 https://registry.npmjs.org/methods/-/methods-0.0.1.tgz npm WARN package.json methods@0.0.1 No README.md file found! ...
アプリを作る
まず express を使ってアプリの雛形を作る。 --ejs オプションを付けると、テンプレートエンジンとして ejs を使うことができる。express のバージョンは 3.0.0rc4 だった。
% express --ejs MyFirstNode
とりあえず動かしてみる。
% cd MyFirstNode % node app.js module.js:340 throw err; ^ Error: Cannot find module 'express' ...
おっとエラーだ。調べてみるとモジュールをローカル(ここでは MyFirstNode ディレクトリ)にリンクしないといけないらしい。で、実行。
% npm link express npm ERR! Error: EPERM, chmod '/Users/chun/MyFirstNode/node_modules/express/bin/express' npm ERR! { [Error: EPERM, chmod '/Users/chun/MyFirstNode/node_modules/express/bin/express'] npm ERR! errno: 50, npm ERR! code: 'EPERM', npm ERR! path: '/Users/chun/MyFirstNode/node_modules/express/bin/express' } npm ERR! npm ERR! Please try running this command again as root/Administrator. npm ERR! System Darwin 10.8.0 npm ERR! command "node" "/usr/local/bin/npm" "link" "express" npm ERR! cwd /Users/chun/MyFirstNode npm ERR! node -v v0.8.8 npm ERR! npm -v 1.1.59 npm ERR! path /Users/chun/MyFirstNode/node_modules/express/bin/express npm ERR! code EPERM npm ERR! errno 50 npm ERR! stack Error: EPERM, chmod '/Users/chun/MyFirstNode/node_modules/express/bin/express' npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /Users/chun/MyFirstNode/npm-debug.log npm ERR! not ok code 0
chmod ができないとエラーが出るが無視して、
% node app.js
としたら動いてくれましたとさ。めでたしめでたし。
よく見ると問題が起こっていなさそうなひとは、npm install -g を一般ユーザ権限で行っている。でもそうすると /usr/local/lib に書き込めないし……
参考
- node.js + express - アドファイブ日記
- npm link express を実行するパーミッションエラーについて