sass --watch在FreeBSD上无法观看

时间:2019-02-28 09:48:17

标签: sass freebsd watch

我在FreeBSD系统上运行了Sass(可以通过linux_base-c7仿真器和kldload linux64使the linux package运行)。

如果我像这样手动运行

sass style.scss style.css

它工作正常。

但是为什么它没有进入监视模式。当我键入

sass --watch style.scss style.css

它不打印任何消息(“ Sass正在观看...”或类似内容)。而且手表也不起作用:style.css在我修改并保存style.scss时保持不变。

它可能有什么问题,我在哪里可以找到错误?

2 个答案:

答案 0 :(得分:1)

问题显然来自在FreeBSD系统上运行:它的watch实用程序与Linux的watch完全不同,因此--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 &

该脚本将在后台运行,即使您从shell中注销也是如此。

答案 1 :(得分:0)

您使用的sass是哪个版本?通过查看代码,看起来它使用了sass-listen,在FreeBSD上使用了kqueue

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)