Чи можна використовувати CoffeeScript замість JS для node.js?


189

Які мої обмеження, якщо я хочу кодувати node.js і використовувати CoffeeScript? Чи можу я зробити все, що можу зробити в JS?

Відповіді:


175

Так, CoffeeScript просто компілюється в чистий JS, що робить його повністю сумісним з node.js.

Щоб запустити CoffeeScripts на вузлі, ви можете:

  • Введіть coffee -c example.coffeeдля компіляції, після чого node example.jsзапустіть компільований JS.
  • Просто введіть coffee example.coffee

2
А як щодо використання інших файлів CoffeeScript? Я не хочу ставити все в 1 CoffeeScript
Jiew Meng

3
@Jiew Meng ви можете скласти цілий каталог таким же чином (замінити example.coffee на шлях до каталогу), або ви можете requireвідкопіювати файли coffeescript, якщо ви require('coffee-script')заздалегідь.
Девід Тан

1
Балотується в coffee example.coffeeпершу чергу для розвитку? Або це досить стабільно для виробництва?
mrmagooey

4
Так, яка різниця між двома варіантами?
Стів Беннетт

4
Для встановлення кавиsudo npm install -g coffee-script
Дмитро Полушкін

89

Не тільки ви можете запускати файли CoffeeScript безпосередньо в Node за допомогою

coffee source.coffee

Ви також можете вимагати їх, як якщо б вони були файлами JavaScript. Наприклад, якщо у вас є lib.coffeeкаталог, ви можете писати

require './lib'

з іншого файлу CoffeeScript у тому самому каталозі. (Для цього з файлу JavaScript вам потрібно буде додати require 'coffee-script'вгорі.) Отже, вам ніколи не доведеться робити компіляцію явно під Node, якщо ви не упакуєте свій проект для розгортання за допомогою інструменту, наприклад npm.

Одне застереження: у слідах стеків цифри рядків, які ви побачите, посилаються на складений JavaScript, навіть якщо ви безпосередньо використовуєте CoffeeScript (так що у вас немає доступу до JavaScript). Дуже багато людей намагаються це виправити, але це велике завдання.


1
Що відбувається з кавою / js на стороні клієнта?
фантазія

клієнту потрібен перекладач реклами, який потрібно включити на сторінку HTML.
Даніеле Врут


1
Наскільки я можу сказати, це не вдається налагодити, не пов'язуючи JS з кавою в голові.
Ерік

1
Правила перетворення кофе-файлів у JS досить прості, вони всі добре задокументовані :)
Kedare

57

Так, ось інша і простіша відповідь. Вам потрібно зробити 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'))

Це реєструє компілятор кофеескриптів у вашій програмі, і ви можете починати обробляти файли кави та js-файли однаково зараз (це означає, що ви також можете вимагати файли кави!)

Цей метод вимагає, щоб ви написали лише один файл (app.js) у ванільному JavaScript. Але перевага полягає в тому, що у середовищі розгортання не потрібно мати coffeescript як початкову глобально встановлену залежність для запуску програми. У цьому випадку вам просто доведеться скопіювати код і npm installвстановити всі необхідні пакети. І ти npm startби ти і біг


2
Дякую за замітку про оновлення 1.7 @gprasant, я витягував волосся, цікавившись, чому це перестало працювати.
pix0r

15

Відеоуроки

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

  1. Coffeescript і Node.js
  2. Нодемон

Посилання nodetuts.com вище перервано. Хоча навчальні посібники на цьому веб-сайті виглядають чудово.
ekillaby

спасибі, оригінальні напрямки посилань зникли / переїхали. Налаштуйте їх на те, що виявив пошук у Google, відео Vimeo @countfloortiles
Mark Essel

3
Дивіться на brunch.io про чудове рішення конвеєра демонів / активів NodeJS. Покриває каву, набори набору CSS та багато іншого.
Лінкольн Б

помітили це деякий час назад, але з тих пір не відвідували. дякую за те, що його виховували
Марк Ессел

11

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

npm install -g jitter

Скажімо, у вас є маса файлів * .coffee у каталозі кави, і хочете зібрати їх у каталог js. Потім запустіть:

jitter coffee js

Джиттер працює у фоновому режимі, поки ви не припините його (Ctrl + C), спостерігаючи за новими змінами.



6

Спробуйте це

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

Потім зробіть:

chmod +x demo.coffee
./demo.coffee

CoffeeScript має досить міцну інтеграцію з вузлом. Як тільки модуль «кава-скрипт» завантажений, або require('coffee-script')шег-багом, який я демонстрував вище, або запустивши coffee demo.coffee... щойно завантажений, ви можете використовувати require('./foo')для введенняfoo.coffee


Дякую, це дуже корисно!
Майк Елліс

0

Якщо ви хочете автоматично компілювати всі ваші файли coffeescript (в одній директорії, включаючи підкаталог) кожного разу, коли вони перетворюються на JavaScript, просто використовуйте цю команду:

find . -name '*.coffee' -type f -print0 | xargs -0 coffee -wc

6
Що не так із вбудованою функцією coffeescript? coffee -o lib/ -cw src/
aaaidan
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.