これが私が欲しいものです。
- Express Web サーバーを使用したノード アプリケーション
- サーバー、さらに重要なことにクライアントでのcoffeescriptの使用
- クライアントで (そして最終的にはサーバーで) require.js を使用する
クライアントに coffeescript を接続するために私が見つけた推奨される方法は、connect-assetsを使用することです。これには、実際に coffeescript をコンパイルするために jade ヘルパーを使用する必要があるようです。
!=js('monalisa.js')
Monalisa.coffee をコンパイルし、正しい<script>
タグを生成するようです。今度はrequire.jsを使いたいのですが、ここでつまずきます。jade ヘルパーを使用せずに connect-assets がすべてを正しくコンパイルするようにするにはどうすればよいですか?
これが私のかなり単純な app.js です。
require('coffee-script');
var express = require('express')
, http = require('http')
, path = require('path')
, connectAssets = require('connect-assets');
var publicDir = path.join(__dirname, 'public');
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use( connectAssets() );
app.use('/public', express.static(publicDir));
app.use(express.logger());
app.use(express.methodOverride());
app.use(app.router);
});
app.configure('development', function(){
app.use(express.errorHandler({
dumpExceptions: true,
showStack: true
}));
});
app.get('/', require('./routes').index);
app.get('/monalisa', require('./routes/monalisa').monalisa);
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});