CoffeeScript - язык программирования, компилируемый в javascript. Используя CoffeeScript для разработки на node.js мы можем избавиться от некоторых, не очень приятных, особенностей javascript.
Сегодня мы рассмотрим, как автоматизировать процесс компиляции CoffeeScript в javascript. Также настроим автоматическую перезагрузку приложения, после каждой новой компиляции.
Устанавливаем пакеты
Для выполнения нашей цели необходимо установить несколько пакетов:
npm install coffee-script forever
Мы установили следующие пакеты
coffee-script- cli-утилита для компиляции CoffeeScriptforever- утилита для удобного запуска node.js процессов
Файловая структура
Всё приложение (файлы с расширением *.coffee) располагаем в отдельной поддиректории. Для скомпилированных файлов создаём дополнительную поддиректорию в корне проекта. Также важно чтобы временные файлы, файлы загруженные пользователями и т.д. находились в отдельной от приложения поддиректории. Т.е. получаем примерно следующую файловую структуру:
$ ls -1
app
compiled
node_modules
package.json
README.md
uploads
Где,
app/- приложение (файлы *.coffee)compiled/- скопмилированные js файлыuploads/- загрузки пользователей
Компилируем CoffeeScript
Для того чтобы компилировать CoffeeScript в javascript необходимо использовать утилиту coffee. Она принимает ряд параметров, можете ознакомится с ней подробнее прочитав справочную информацию coffee --help.
Утилита coffee позволяет следить за файловой системой и автоматически перекомпилировать изменённые файлы CoffeeScript. Для этого необходимо вызвать её со следующими параметрами:
coffee -w -o compiled/ app/
Где, флаг -w включает режим отслеживания, -o задаёт директорию, в которую сохраняются скомпилированные файлы, а последний параметр определяет целевую директорию приложения.
Настраиваем автоматический перезапуск приложения
Для того чтобы автоматически перезапускать приложения, после перекомпиляции, воспользуемся утилитой forever.
forever -w --watchDirectory compiled/ --sourceDiDir compiled/ compiled/app.js
Рассмотрим параметры:
-w- включаем режим отслеживания--watchDirectory- задаем директорию, изменения в которой необходимо отслеживать--sourceDir- задаем базовую директорию для запускаемого приложения- и файл который необходимо запустить
Теперь после каждого изменения в *.coffee файлах приложения будет автоматически запускаться перекомпиляция изменённых файлов. После этого изменения в скомпилированных файлах будет замечено утилитой forever, что приведет к перезапуску приложения.