2013-05-25 63 views
3

我喜歡在CoffeeScript中編寫我的堆棧,我只是想知道如何在運行時使用Node.js自動編譯它,所以我不必手動編譯每個咖啡文件,然後編輯並將.js移動到該文件,這是我現在(只是爲了測試);如何使用Node.js自動編譯.coffeescript?


/routes/index.coffee: 

exports.index = (req, res) -> 
    res.render "index", 
    title: "Express" 

app.js: 

/** 
* Module dependencies. 
*/ 
require('coffee-script'); 
var express = require('express') 
    , staticp = require('./routes/index') 
    , user = require('./routes/user') 
    , http = require('http') 
    , path = require('path'); 

var app = express(); 

// all environments 
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(express.methodOverride()); 
app.use(app.router); 
app.use(express.static(path.join(__dirname, 'public'))); 

// development only 
if ('development' == app.get('env')) { 
    app.use(express.errorHandler()); 
} 

app.get('/', staticp.index); 
app.get('/users', user.list); 

http.createServer(app).listen(app.get('port'), function(){ 
    console.log('Express server listening on port ' + app.get('port')); 
}); 


Error: 

https://gist.github.com/Gacnt/8f550196813df8fe1d5f 

回答

4

只是require('coffee-script');提前。

更新: 如果您使用CoffeeScript> = 1.7.0,則需要register()它。

+0

我這樣做,現在我得到這個錯誤:https://gist.github.com/Gacnt/8f550196813df8fe1d5f – Datsik

+0

你有咖啡文件中的語法錯誤 – Ven

+0

exports.index =(req,res) - > res.render「index」, title:「Express」 – Datsik

5

您可以開始coffee -wc *.coffee,它們將在保存時重新編譯.coffee文件。

+3

對不起,沒有看到'運行時'部分,但我留下了答案,因爲它可能對某人有用。 –

+1

這對我來說,謝謝! =) – Philip

+0

非常有用。謝謝!正是我所搜索的 – imkost

相關問題