Como eu uso o Node e o Express com o coffeescript e o requirejs?
Aqui está o que eu quero.
Um aplicativo de nó usando o servidor da web expressoUsando o coffeescript no servidor e, mais importante, o clienteUsando require.js no cliente (e, eventualmente, no servidor)A maneira recomendada que eu consegui encontrar de conectar o coffeescript para o cliente é usarconectar-ativos. Isso parece exigir o uso de ajudantes de jade para compilar o coffeescript, por exemplo.
!=js('monalisa.js')
parece compilar monalisa.coffee e gerar o correto<script>
tag. Agora eu quero usar require.js e aqui eu tropeço. Como posso garantir que os ativos de conexão compilam tudo corretamente sem usar os auxiliares de jade?
Aqui está o meu bastante simples 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'));
});