Puedo usar CoffeeScript en lugar de JS para node.js?
Cuáles son mis restricciones si quiero codificar nodo.js y usar CoffeeScript? ¿Puedo hacer algo que pueda hacer en JS?
8 answers
Sí, CoffeeScript simplemente compila en JS puro, haciéndolo completamente compatible con node.js.
Para ejecutar CoffeeScripts en el nodo, puede:
- Escriba
coffee -c example.coffee
para compilar, seguido denode example.js
para ejecutar el JS compilado. - Simplemente escriba
coffee example.coffee
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-13 12:15:21
No solo puede ejecutar archivos CoffeeScript directamente en el nodo con
coffee source.coffee
También puede requerirlos como si fueran archivos JavaScript. Por ejemplo, si tiene lib.coffee
en un directorio, puede escribir
require './lib'
Desde otro archivo CoffeeScript en el mismo directorio. (Para hacer esto desde un archivo JavaScript, tendrás que agregar require 'coffee-script'
en la parte superior.) Por lo tanto, nunca tiene que hacer la compilación explícitamente bajo Node, a menos que esté empaquetando su proyecto para la implementación con una herramienta como npm.
Una advertencia: En stack traces, los números de línea que verá se refieren al JavaScript compilado, incluso cuando está ejecutando CoffeeScript directamente (por lo que no tiene acceso al JavaScript). Mucha gente está tratando de arreglar esto, pero es un gran desafío.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-13 17:59:37
Sí, aquí hay una respuesta diferente y más simple. Tienes que hacer 2 pasos.
npm install coffee-script --save # I assume you would have done this already
.Tiene
require('coffee-script')
como la primera línea que se ejecuta enserver.js
deapp.js
. (ACTUALIZACIÓN: desde coffee script 1.7, usted tendrá que hacerrequire('coffee-script/register'))
Esto registra el compilador coffeescript en su aplicación y puede comenzar a tratar los archivos coffee y los archivos js por igual ahora (lo que significa que también puede requerir archivos coffee !).
Este método requerirá que para escribir solo un archivo (app.js) en javascript vainilla. Pero la ventaja es que su entorno de implementación no necesita tener coffeescript como dependencia inicial instalada globalmente para ejecutar su aplicación. En este caso, solo tendría que copiar su código, y npm install
instalaría todos los paquetes necesarios. Y npm start
te tendría listo y funcionando
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-12 20:59:48
Tutoriales en vídeo
He visto una gran serie de tutoriales de Pedro Teixeira. Ha estado construyendo una serie completa de tutoriales de nodos. Incluye referencia a nodemon para detección automática y compilación y recarga de edited .archivos de café.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-10 11:01:32
Puedes usar Jitter, una simple compilación continua para CoffeeScript.
npm install -g jitter
Digamos que tienes un montón de *.archivos coffee en el directorio coffee, y desea compilarlos en el directorio js. Luego ejecute:
jitter coffee js
El Jitter se ejecuta en segundo plano hasta que lo terminas (Ctrl+C), buscando nuevos cambios.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-20 22:14:20
Coffeescript + ExpressJS + Couchdb + Redis + Auth:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-15 12:10:25
Prueba esto
#!/usr/bin/env coffee
v = 78
console.log "The value of v is '#{v}'"
Entonces haz:
chmod +x demo.coffee
./demo.coffee
CoffeeScript tiene una integración bastante sólida con node. Una vez que se carga el módulo' coffee-script', ya sea por require('coffee-script')
, por la demostración de she-bang I anterior, o ejecutando coffee demo.coffee
... una vez cargado, puede usar require('./foo')
para traer foo.coffee
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-18 18:50:54
Si desea compilar automáticamente todos sus archivos coffeescript (en un directorio incluyendo subdir) cada vez que cambian a javascript, simplemente use este comando:
find . -name '*.coffee' -type f -print0 | xargs -0 coffee -wc
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-03 05:39:25