Fork me on GitHub

CoffeeScript & node.js dev-сервер

CoffeeScript - язык программирования, компилируемый в javascript. Используя CoffeeScript для разработки на node.js мы можем избавиться от некоторых, не очень приятных, особенностей javascript. node.js and coffee-script Сегодня мы рассмотрим, как автоматизировать процесс компиляции CoffeeScript в javascript. Также настроим автоматическую перезагрузку приложения, после каждой новой компиляции.

Устанавливаем пакеты

Для выполнения нашей цели необходимо установить несколько пакетов:

:::bash
npm install coffee-script forever

Мы установили следующие пакеты

  • coffee-script - cli-утилита для компиляции CoffeeScript
  • forever - утилита для удобного запуска node.js процессов

Файловая структура

Всё приложение (файлы с расширением *.coffee) располагаем в отдельной поддиректории. Для скомпилированных файлов создаём дополнительную поддиректорию в корне проекта. Также важно чтобы временные файлы, файлы загруженные пользователями и т.д. находились в отдельной от приложения поддиректории. Т.е. получаем примерно следующую файловую структуру:

:::bash
$ ls -1
app
compiled
node_modules
package.json
README.md
uploads

Где,

  • app/ - приложение (файлы *.coffee)
  • compiled/ - скопмилированные js файлы
  • uploads/ - загрузки пользователей

Компилируем CoffeeScript

Для того чтобы компилировать CoffeeScript в javascript необходимо использовать утилиту coffee. Она принимает ряд параметров, можете ознакомится с ней подробнее прочитав справочную информацию coffee --help.

Утилита coffee позволяет следить за файловой системой и автоматически перекомпилировать изменённые файлы CoffeeScript. Для этого необходимо вызвать её со следующими параметрами:

:::bash
 coffee -w -o compiled/ app/

Где, флаг -w включает режим отслеживания, -o задаёт директорию, в которую сохраняются скомпилированные файлы, а последний параметр определяет целевую директорию приложения.

Настраиваем автоматический перезапуск приложения

Для того чтобы автоматически перезапускать приложения, после перекомпиляции, воспользуемся утилитой forever.

:::bash
forever -w --watchDirectory compiled/ --sourceDiDir compiled/ compiled/app.js

Рассмотрим параметры:

  • -w - включаем режим отслеживания
  • --watchDirectory - задаем директорию, изменения в которой необходимо отслеживать
  • --sourceDir - задаем базовую директорию для запускаемого приложения
  • и файл который необходимо запустить

Теперь после каждого изменения в *.coffee файлах приложения будет автоматически запускаться перекомпиляция изменённых файлов. После этого изменения в скомпилированных файлах будет замечено утилитой forever, что приведет к перезапуску приложения.

ссылки

онлайн