Вот мои настройки для всех, кто интересуется.
Это очень плохо сказывается на производительности!
~/coffee
------
#!/usr/bin/perl
# this is coffee runner!
print ` PATH="\$PATH:~/www/cgi-bin/bin" ; ~/www/cgi-bin/bin/node_modules/coffee-script/bin/coffee $ARGV[0] 2>&1 `;
------
У меня нет необходимости изменять свою серверную среду, поэтому ядобавить мои пути узлов здесь.Тем не менее, я могу настроить обработчик в .htaccess:
~/dir/.htaccess
------
AddHandler cgi-script .litcoffee
DirectoryIndex cv.litcoffee
------
Это означает, что я могу работать грамотно как CGI и подавать кофе для браузера :-) Очень неэффективно, но мало кто приходит на мойсайт в любом случае.
Тогда каждый из моих сценариев выглядит примерно так ...
~/web/ascript.litcoffee
------
#!/usr/bin/perl /home/jimi/coffee
This is literate coffeescript!
module.paths.push "/home/jimi/www/cgi-bin/bin/node_modules"
require "coffee-script"
This is a wee module I wrote for spewing tags, with content and attributes
global[k.toUpperCase()] = v for k,v of require './html.litcoffee'
It also provides a header function, but I'm going to move that to a CGI module when I get around to it.
console.log CGI_HEADER()
Now we can put something to the browser.
console.log HTML [
HEAD [
META {charset:"utf-8"}
SCRIPT [],
src : "https://raw.github.com/jashkenas/coffee-script/master/extras/coffee-script.js"
SCRIPT [],
src : "runsonclient.coffee"
type : "text/coffeescript"
LINK
rel : "stylesheet"
href : "mystyles.css"
TITLE "A page title"
]
BODY [
H1 "a page title"
INPUT
id : "myinput"
type : "text"
SVG
id : "mysvg"
width : "80%"
height : "20"
DIV
id : "mydiv"
]
]
------
Я знаю, что это не красиво, но работает.И запуск из скрипта (хотя по общему признанию это не должно быть perl!) Позволяет 2> & 1, поэтому все мои ошибки попадают на экран, если только мой заголовок не напечатан .... но Джаред Апдайк уже решил это с помощью блока try.