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?

Author: Teun Zengerink, 2011-01-13

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 de node example.js para ejecutar el JS compilado.
  • Simplemente escriba coffee example.coffee
 174
Author: David Tang,
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.

 88
Author: Trevor Burnham,
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.

  1. npm install coffee-script --save # I assume you would have done this already.

  2. Tiene require('coffee-script') como la primera línea que se ejecuta en server.js de app.js. (ACTUALIZACIÓN: desde coffee script 1.7, usted tendrá que hacer require('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

 56
Author: gprasant,
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é.

  1. Coffeescript y Node.js
  2. Nodemon
 15
Author: Mark Essel,
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.

 11
Author: Roger Garzon Nieto,
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:

Https://gist.github.com/652819

 8
Author: Shripad Krishna,
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

 6
Author: Dave Dopson,
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
 0
Author: Taner Topal,
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