sass - watch不在FreeBSD上观看

问题描述 投票:1回答:2

我在FreeBSD系统上运行Sass(设法使用the linux package模拟器和linux_base-c7使kldload linux64工作)。

如果我手动运行它

sass style.scss style.css

它工作正常。

但有些人为什么不进入观看模式。当我输入

sass --watch style.scss style.css

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

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

sass freebsd watch
2个回答
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注销,脚本也将在后台运行。


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)

© www.soinside.com 2019 - 2024. All rights reserved.