npmでグローバルにインストール
npm install -g express
express コマンドを実行してみる
express myApp
そんなものはないと怒られる。
少し調べてみた結果、express コマンドには express-generator が必要らしい
npm install -g express-generator
再チャレンジしてみる
express myApp
できた。
expressを起動してみる
まずは設定
cd myApp
npm install
node app
あれ、何も起きない。。。
起動ファイルが、 app.js ではなく、 bin/www らしい
package.json の start コマンドに設定されていた。
npm start
できた。
CSSをLESSで書きたい
html の テンプレートエンジンはデフォルトで jade だったので、
このまま使うとして CSS は LESS を使いたいと言うことで、
を設定してみた。
まずは、npmでインストール
npm install less-middleware --save
次に設定ファイルを変更
app.js
// use css engine less
var lessMiddleware = require('less-middleware');
app.use(lessMiddleware(
path.join(__dirname, 'public')
));
public/stylesheets/style.less
h1{
color: green;
}
#main
{
color:#FFF;
#sub{
color:#666;
}
}
アクセスしてみる
できた。
が、
これだと、public/stylesheets にlessファイル置かないといけないので
lessファイルの配置場所を変更
app.js
// use css engine less
var lessMiddleware = require('less-middleware');
app.use(lessMiddleware(
path.join(__dirname, 'assets'),
{
dest: path.join(__dirname, 'public')
}
));
これで asets/stylesheets にless ファイルを配置すればOK
CoffeeScriptで記述できるようにしたい
参考 express.js 4をCoffeeScriptで開発できるようにする
coffee-script と js2coffee をインストールする
npm install -g coffee-script js2coffee
jsファイルをcoffeescriptに変換
find . -type f -name "*.js" | while read f; do js2coffee "$f" > "${f%.*}.coffee"; done
ここで大量のエラーが。
node_modulesの中身にまで変換かけているっぽいですね。
スクリプト修正しようかと思ったが、
既にわけがわからなくなっているので、
復習も兼ねて、最初から作り直すことに
express myApp
cd myApp
で npm install
をする前に
find . -type f -name "*.js" | while read f; do js2coffee "$f" > "${f%.*}.coffee"; done
今度は大丈夫みたいです。
jsファイルを削除
find . -type f -name "*.js" | xargs rm -f
ここで
npm install
npm install coffee-script --save
スタートアップファイルを編集
bin/www の先頭に以下を追記
require('coffee-script/register');
実行してみる
npm start
できた
外部ファイルもCoffeeScriptで書きたい
あとは、 public/javascripts のファイルもCoffeeScriptで書けるようになれば、
やりたいことは叶いますね。
coffee-middleware がよさそうなのでインストールしてみる
npm install coffee-middleware --save
設定ファイルを編集
app.coffee
# use coffeescript
coffeeMiddleware = require('coffee-middleware')
app.use coffeeMiddleware(
src: path.join(__dirname, "public")
compress: true
bare: true
)
CoffeeScriptのファイルを配置してみる
public/main.coffee
alert 'main coffee'
実行してみる
できた。
とりあえず、
やりたいことは、出来るようになったので満足なのですが、
実際の運用を考えたら、
html はともかく
js や css は、
毎回expressで生成するのもどうかというわけで、
多分 grunt を使うことになるだろうなと思いました。