Подтвердить что ты не робот

Вместо "node" используйте команду "кофе"

У меня есть app.js, который запускает express.js.

Я хочу преобразовать код в coffeescript и подумал о создании app.coffee, который я компилирую в app.js, поэтому я могу запустить его с помощью "node app.js".

Но потом ударил меня, что я могу просто написать этот файл в app.coffee и запустить его с помощью "coffee app.coffee".

Это лучший способ? Могу ли я запустить сервер с "кофе" в производстве?

4b9b3361

Ответ 1

Да, вы можете использовать команду кофе в производстве. Я использую его.

Я вижу две причины, почему вы хотите использовать app.js wrapper.

  • Вы хотите использовать локальную установку CoffeeScript. (разные версии между приложениями)
  • Вы хотите использовать запуск по умолчанию npm для запуска своего сервера:) См. скрипты справки npm

О, и вам не нужно его компилировать. Вы можете использовать такую ​​обертку, которая прозрачно компилирует файл кофе:

server.js:

require('coffee-script').register();
require("./yourcoffeeapp.coffee");

Этот метод обертки особенно полезен, если вы хотите использовать CoffeeScript в некоторых размещенных средах, которые не поддерживают непосредственно команду CoffeeScript. Такие, как Cloud 9 IDE. Не нужно возиться с скомпилированными js файлами.

Ответ 2

Я поддержал ответ Эпели, который ясен и превосходен - использование ".js" обертки, а не команда coffee избавляет вас от потенциальных головных болей в пути, но поскольку это субъективный вопрос, позвольте мне сделать противоположное мнение.

Многие авторы CoffeeScript, включая меня, рекомендуют компилировать нетривиальные приложения Node в JS перед развертыванием. Это не сложно посмотреть на шаблон Sam Stephenson node-coffee-project, который включает в себя Cakefile, который делает компиляцию и тестирование бриза.

Одна из основных причин для этого состоит в том, что трассировка стека Node дает номера строк, которые относятся к скомпилированному JavaScript, а не к оригинальному CoffeeScript. Поэтому, когда ошибки записываются в журналы вашего сервера, приятно иметь возможность просматривать соответствующий код прямо на сервере.

Еще одно преимущество компиляции JS заключается в том, что он позволяет вам работать с большим количеством инструментов на сервере - многие отладчики Node, тестовые рамки и удивительные лакомбы, такие как cluster нравится работать непосредственно с .js файлами.

Получение хорошей настройки компиляции для вашего проекта требует некоторой работы, но я думаю, вы сочтете это стоящим.

Ответ 3

Я предпочитаю создавать main.js следующим образом:

require("coffee-script");
require('./yourcoffeeapp');

И ваш coffeeapp.coffee вот так:

http = require 'http'
on_request = (req, res) =>
    res.writeHead 200, {'Content-Type': 'text/plain'}
    res.end "Hello World\n"
server = http.createServer on_request
server.listen 1337, "127.0.0.1"