sass --watch не смотрит на FreeBSD - PullRequest
       56

sass --watch не смотрит на FreeBSD

0 голосов
/ 28 февраля 2019

У меня Sass работает в системе FreeBSD (удалось заставить пакет linux работать с использованием linux_base-c7 эмулятора и kldload linux64).

Если я запускаю его вручную, как

sass style.scss style.css

Работает нормально.

Но почему-то не входит в режим просмотра.Когда я набираю

sass --watch style.scss style.css

, он не печатает никаких сообщений («Sass наблюдает ...» или что-то в этом роде).И часы тоже не работают: style.css остается неизменным, когда я изменяю и сохраняю style.scss.

Что может быть не так и где я могу искать ошибки?

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Какую версию sass вы используете?Из этого кода видно, что он использует sass-listen, который использует kqueue во FreeBSD:

https://rubygems.org/gems/sass/versions/3.7.4

https://rubygems.org/gems/sass-listen/versions/4.0.0

https://github.com/sass/listen/blob/v4.0.0/lib/sass-listen/adapter/bsd.rb

Так что вообще не следует звонить watch(1).

0 голосов
/ 02 марта 2019

Проблема, очевидно, возникает из-за ее запуска в системе FreeBSD: ее утилита watch полностью отличается от watch в Linux, поэтому опция --watch не работает.

Обходной путь может быть достигнут с помощьюinotify-tools пакет (требуется установка).

Я написал скрипт, назовем его sass-watch.sh, который позволяет установить наблюдение за данным каталогом, например:

sh sass-watch.sh .

Вот что внутри этого скрипта:

nohup \
inotifywait \
  --recursive \
  --monitor  \
  --event close_write \
  --include '\.scss$' \
  $1 \
| while read arg; do \
    sass $1:$1 ; \
  done &

Сценарий будет работать в фоновом режиме и сохраняться даже после выхода из оболочки.

...