Могу ли я использовать CoffeeScript вместо JS для node.js?

Каковы мои ограничения, если я хочу кодировать node.js и использовать CoffeeScript? Могу ли я сделать что-нибудь, что я мог бы сделать в JS?


person donald    schedule 13.01.2011    source источник


Ответы (8)


Да, CoffeeScript просто компилируется в чистый JS, что делает его полностью совместимым с node.js.

Чтобы запустить CoffeeScripts на узле, вы можете:

  • Введите coffee -c example.coffee для компиляции, а затем node example.js для запуска скомпилированного JS.
  • Просто введите coffee example.coffee
person David Tang    schedule 13.01.2011
comment
@donald, я не знаю ни одного комбинированного руководства по CoffeeScript + Node. Изучать их отдельно идеально. Ссылка, которую я дал выше для Node, является идеальным введением, а для CoffeeScript это все, что вам нужно: jashkenas .github.com/coffee-script - person David Tang; 14.01.2011
comment
@donald вот, попробуйте этот: nodetuts.com/ учебники/ - person jcollum; 16.03.2012
comment
Но как насчет использования других файлов CoffeeScript? Я не хочу помещать все в 1 CoffeeScript - person Jiew Meng; 10.06.2012
comment
@Jiew Meng, вы можете скомпилировать весь каталог таким же образом (замените example.coffee путем к каталогу), или вы можете require нескомпилированные файлы coffeescript, если вы require('coffee-script') заранее. - person David Tang; 12.06.2012
comment
Работает ли coffee example.coffee в первую очередь для разработки? Или он достаточно стабилен, чтобы делать это в продакшене? - person mrmagooey; 12.06.2013
comment
Да какая разница между этими двумя вариантами? - person Steve Bennett; 02.10.2013
comment
Чтобы установить кофе sudo npm install -g coffee-script - person Dmitry Polushkin; 06.11.2013
comment
стоит отметить - в некоторых случаях я обнаружил, что будет работать только версия coffee example.coffee - стоит попробовать, прежде чем пытаться отлаживать исключения javascript. - person Jordan; 09.03.2015

Вы можете не только запускать файлы CoffeeScript непосредственно в узле с

coffee source.coffee

вы также можете потребовать их, как если бы они были файлами JavaScript. Например, если у вас есть lib.coffee в каталоге, вы можете написать

require './lib'

из другого файла CoffeeScript в том же каталоге. (Чтобы сделать это из файла JavaScript, вам нужно будет добавить require 'coffee-script' вверху.) Таким образом, вам никогда не придется выполнять компиляцию явно в Node, если только вы не упаковываете свой проект для развертывания с помощью такого инструмента, как npm.

Одно предостережение: в трассировках стека номера строк, которые вы увидите, относятся к скомпилированному JavaScript, даже если вы запускаете CoffeeScript напрямую (поэтому у вас нет доступа к JavaScript). Многие люди пытаются исправить это, но это большая проблема.

person Trevor Burnham    schedule 13.01.2011
comment
Что происходит с кофе/js на стороне клиента? - person fancy; 25.01.2012
comment
на стороне клиента требуется интерпретатор объявлений, который вы должны включить в HTML-страницу. - person Daniele Vrut; 06.10.2013
comment
@fancy, coffescript › 1.6.1 поддерживает исходные карты - person MegaTux; 30.06.2014
comment
Насколько я могу судить, это невозможно отладить, не связывая JS с кофе в вашей голове. - person Eric; 26.07.2014
comment
Правила преобразования Coffeescript в JS довольно просты, все они хорошо документированы :) - person Kedare; 18.10.2014
comment
Начиная с версии CoffeeScript 1.7.0, вы должны загружать его следующим образом: require('coffee-script/register'); (Источник ) - person bootsmaat; 17.03.2015

Да, вот другой и более простой ответ. Вам нужно сделать 2 шага.

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

  2. Сделайте require('coffee-script') первой строкой, которая будет выполнена в server.js из app.js. (ОБНОВЛЕНИЕ: начиная с версии 1.7 сценария кофе, вам нужно будет сделать require('coffee-script/register'))

Это регистрирует компилятор coffeescript в вашем приложении, и теперь вы можете начать обрабатывать файлы coffee и js одинаково (это означает, что вам также могут потребоваться файлы coffee!).

Этот метод потребует от вас написать только один файл (app.js) в ванильном javascript. Но преимущество заключается в том, что ваша среда развертывания не должна иметь coffeescript в качестве начальной глобально установленной зависимости для запуска вашего приложения. В этом случае вам просто нужно будет скопировать свой код, и npm install установит все необходимые пакеты. И npm start заставит вас работать

person gprasant    schedule 27.10.2013
comment
Спасибо за заметку об обновлении 1.7 @gprasant, я рвал на себе волосы, задаваясь вопросом, почему это перестало работать. - person pix0r; 29.04.2014

Видеоуроки

Я видел отличную серию руководств Педро Тейшейры. Он создал целую серию руководств по узлам. Он включает ссылку на nodemon для автоматического обнаружения, компиляции и перезагрузки отредактированных файлов .coffee.

  1. Coffeescript и Node.js
  2. Нодемон
person Mark Essel    schedule 03.05.2011
comment
Ссылки nodetuts.com выше не работают. Тем не менее, учебные пособия на этом сайте выглядят великолепно. - person awhie29urh2; 07.12.2012
comment
спасибо, исходные адреса ссылок исчезли/переместились. Установите их на то, что показал поиск Google, видео Vimeo @countfloortiles - person Mark Essel; 10.12.2012
comment
См. brunch.io, где вы найдете отличное решение для конвейера демонов/активов NodeJS. Охватывает кофе, суперсеты CSS и многое другое. - person Lincoln B; 20.12.2012
comment
заметил это некоторое время назад, но не посещал с тех пор. спасибо, что подняли это - person Mark Essel; 20.12.2012

Вы можете использовать Jitter, простую непрерывную компиляцию для CoffeeScript.

npm install -g jitter

Допустим, у вас есть куча файлов *.coffee в каталоге coffee, и вы хотите скомпилировать их в каталог js. Затем запустите:

jitter coffee js

Джиттер работает в фоновом режиме, пока вы не остановите его (Ctrl+C), наблюдая за новыми изменениями.

person Roger Garzon Nieto    schedule 20.12.2012

Coffeescript + ExpressJS + Couchdb + Redis + аутентификация:

https://gist.github.com/652819

person Shripad Krishna    schedule 15.01.2011
comment
Черт, это много модных словечек. - person bgw; 22.12.2012

Попробуй это

#!/usr/bin/env coffee
v = 78
console.log "The value of v is '#{v}'"

Затем выполните:

chmod +x demo.coffee
./demo.coffee

CoffeeScript имеет довольно прочную интеграцию с node. Как только модуль 'coffee-script' будет загружен, либо с помощью require('coffee-script'), с помощью демонстрационного примера, показанного выше, либо с помощью coffee demo.coffee... после загрузки вы можете использовать require('./foo') для ввода foo.coffee

person Dave Dopson    schedule 18.08.2012
comment
Спасибо, это очень полезно! - person Mike Ellis; 23.03.2016

Если вы хотите автоматически компилировать все ваши файлы coffeescript (в одном каталоге, включая subdir) каждый раз, когда они превращаются в javascript, просто используйте эту команду:

find . -name '*.coffee' -type f -print0 | xargs -0 coffee -wc
person Taner Topal    schedule 22.05.2012
comment
Что не так со встроенной функциональностью coffeescript? coffee -o lib/ -cw src/ - person aaaidan; 03.08.2012