Подборка кофейных сценариев - PullRequest
22 голосов
/ 21 февраля 2011

Я ищу самый простой способ автоматически перекомпилировать сценарии кофе в JS.

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

Мне нужно, чтобы он смотрел папку src/ на наличие любых изменений *.coffee файлов и компилировал их в сцепленный файл javascript в lib/something.js.

Каким-то образом нельзя совмещать просмотр, компиляцию и объединение. : /

Ответы [ 11 ]

21 голосов
/ 21 февраля 2011

В документации к скрипту кофе приведен пример:

Просматривайте файл на предмет изменений и перекомпилируйте его при каждом сохранении:

coffee --watch --compile experimental.coffee

Если у вас есть определенный скриптесли вы хотите выполнить, вы можете использовать команду linux dnotify: http://linux.die.net/man/1/dnotify

dnotify --all src/ --execute=command

Редактировать: у меня были некоторые проблемы с --execute частью dnotify - может быть ошибка, но это то, что яначало работы:

dnotify --all . -e `coffee -o lib/ --join --compile *.coffee`

При каждом изменении файла выполнялась команда компиляции.

Если вы добавляете команду с амперсандом, например:

dnotify --all . -e `coffee -o lib/ --join --compile *.coffee` &

это будет начато в отдельном процессе.Чтобы получить идентификатор процесса, вы можете использовать это:

ps ux | awk '/dnotify/ && !/awk/ {print $2}'

И затем вы можете убить процесс, используя что-то вроде этого:

kill `ps ux | awk '/dnotify/ && !/awk/ {print $2}'`

Но если это ваша цель (чтобыуничтожить по имени процесса), вы можете сделать это проще, используя:

killall dnotify
7 голосов
/ 04 ноября 2011

Попробуйте джиттер

https://github.com/TrevorBurnham/jitter

Он просматривает каталог файлов .coffee, и когда он обнаруживает, что файл изменился, он автоматически перекомпилирует его в .js

джиттер / путь / к / кофе / dir / путь / к / js / dir

Я пробовал это с проектом с использованием coffescript и sencha touch, похоже, он работает довольно хорошо. Не заботится о проблеме конкатенации, но она действительно проста в использовании для тех, кому просто нужна автокомпиляция.

4 голосов
/ 21 мая 2013

Это помогло мне (-o выходной каталог, -j присоединение к project.js, -cw компиляция и просмотр каталога coffeescript на полную глубину):

coffee -o web/js -j project.js -cw coffeescript
3 голосов
/ 19 октября 2011

Хорошо coffee --watch имеет 2 основных недостатка:

  • Новые файлы, созданные после выполнения команды, не отслеживаются
  • Требуется ручное инициирование, так что может быть шанс, что вызабудьте сделать это, что звучит не блестяще, чем забыть скомпилировать перед вами git commit it

Решение, которое я придумал, - это довольно простой Bash-скрипт, который занимает coffee --watch несколькодальнейшие шаги, которые позволят отслеживать ваше рабочее дерево каталогов с момента входа в систему и автоматически компилироваться в JavaScript при каждом сохранении / изменении файла или создании нового файла:

http://blog.gantrithor.com/post/11609373640/carefree-coffeescript-auto-compiler

Тамможет быть более элегантный способ сделать это, но эта реализация прекрасно работает =)

2 голосов
/ 01 ноября 2012

Я обнаружил, что компилятор coffeescript командной строки плохо подходит для сложных структур проекта.

Если вы и ваш процесс сборки столь же нужны, как и я, проверьте Grunt - http://gruntjs.com/

Он допускает очень сложные процессы сборки - например, вы можете

  1. объединить кофе в новый файл (ы)
  2. компилировать
  3. объединить некоторые дополнительные JS
  4. преуменьшать

Задачи можно связать вместе, а просматриваемые файлы / папки также можно настраивать.

2 голосов
/ 18 октября 2012

Будучи на один уровень выше / src, это будет работать для всех найденных файлов .coffee независимо от их глубины.

coffee -w -c src/
2 голосов
/ 30 декабря 2011
find -type f | grep .coffee | xargs ls -t | head -n 1 | xargs coffee -cw

найти последний модифицированный сценарий кофе и перевести его в режим просмотра компиляции

1 голос
/ 26 февраля 2013
find `pwd` | grep .coffee | xargs coffee -w -c

попробуйте это в корневом каталоге приложения

1 голос
/ 23 февраля 2011

Короткий ответ на ваш вопрос заключается в том, что утилита coffee не предназначена для этого; совмещать просмотр файлов и объединение на самом деле довольно сложно. Ожидайте более сложные инструменты сборки для CoffeeScript в ближайшем будущем; до тех пор, возможно, вы захотите делать сборки вашего проекта, написав скрипт Cakefile или Ruby Watchr. Затем вы также можете добавить минификацию, генерацию документации и все, что вам нужно для вашего конкретного проекта (не говоря уже о гарантии конкретного порядка конкатенации).

0 голосов
/ 05 февраля 2013

nodemon -x coffee server.coffee делает это для меня.

Установите nodemon, используя npm install -g nodemon

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...