Вместо "node" используйте команду "кофе"
У меня есть app.js, который запускает express.js.
Я хочу преобразовать код в coffeescript и подумал о создании app.coffee, который я компилирую в app.js, поэтому я могу запустить его с помощью "node app.js".
Но потом ударил меня, что я могу просто написать этот файл в app.coffee и запустить его с помощью "coffee app.coffee".
Это лучший способ? Могу ли я запустить сервер с "кофе" в производстве?
Ответы
Ответ 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"