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
, что приведет к перезапуску приложения.