Coffee-Middleware сделал именно то, что я хотел - минимальная настройка, никаких сгенерированных файлов и не небрежный.
Когда он получает запрос на somescript.js
, он проверит, есть ли somescript.coffee
. Если он есть, он скомпилирует его и отправит.
Установите его:
npm install coffee-middleware
Чтобы использовать, просто добавьте
app.use require('coffee-middleware') src: "#{__dirname}/your/web/root"
перед тем, что вы используете для обслуживания статических файлов.
Простой пример, который обслуживает файлы в «общедоступном» каталоге, выполняет coffeescript перед отправкой и выполняет цветное ведение журнала:
app = require('express')()
app.use require('morgan') 'dev'
app.use require('coffee-middleware') src: "#{__dirname}/views"
app.use require('serve-static') "#{__dirname}/views"
app.listen 80
Чтобы использовать код выше:
mkdir coffeeServer
cd coffeeServer
npm install morgan coffee-middleware serve-static
npm install coffee-script -g
echo 'app = require("express")()
app.use require("morgan") "dev"
app.use require("coffee-middleware") src: "#{__dirname}/views"
app.use require("serve-static") "#{__dirname}/views"
app.listen 80' > server.coffee
coffee -c server.coffee
mkdir views
cd views
echo 'console.log "Hello world!"' > script.coffee
cd ..
node server.js
Вы можете скопировать всю связку в терминал, и он настроит и запустит сервер.
Для проверки:
curl XXX.XXX.XXX.XXX/script.js
Последний бит должен выплевывать
(function() {
console.log("Hello world!");
}).call(this);
//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LmpzIiwic291cmNlcyI6WyJzY3JpcHQuY29mZmVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUEsRUFBQSxPQUFPLENBQUMsR0FBUixDQUFZLGNBQVosQ0FBQSxDQUFBO0FBQUEifQ==NHS0076
Удачи!