Sass手表权限被拒绝 – 没有指南针

我试图在一个新的代码分支上运行sass watch命令。 当我运行正常的命令,我得到一个权限被拒绝的错误。

Errno::EACCES: Permission denied - /me/atg/workspace/AA/dev_3.4.0 

这是我的命令:

 sass --watch stores.scss:/me/atg/workspace/AA/dev_3.4.0/a_a/modules/estore/j2ee/AA.war/static/css/stores.css --style compressed 

我用sudo运行这个命令,它似乎运行。 手表会检测到scss文件中已经做了更改,但是刷新之后的更改不像以前使用watch命令那样显示。 我必须重build并启动服务器,以便实际显示在本地站点上的更改。

我认为这可能是caching问题,但不能确定。 我没有使用指南针,我读过的大多数解决scheme似乎都与指南针有关。

以下是不使用sudo运行watch命令时的跟踪。

 from /usr/lib/ruby/1.9.1/fileutils.rb:247:in `fu_mkdir' from /usr/lib/ruby/1.9.1/fileutils.rb:221:in `block (2 levels) in mkdir_p' from /usr/lib/ruby/1.9.1/fileutils.rb:219:in `reverse_each' from /usr/lib/ruby/1.9.1/fileutils.rb:219:in `block in mkdir_p' from /usr/lib/ruby/1.9.1/fileutils.rb:205:in `each' from /usr/lib/ruby/1.9.1/fileutils.rb:205:in `mkdir_p' from /var/lib/gems/1.9.1/gems/sass-3.4.16/lib/sass/plugin/compiler.rb:478:in `update_stylesheet' from /var/lib/gems/1.9.1/gems/sass-3.4.16/lib/sass/plugin/compiler.rb:215:in `block in update_stylesheets' from /var/lib/gems/1.9.1/gems/sass-3.4.16/lib/sass/plugin/compiler.rb:209:in `each' from /var/lib/gems/1.9.1/gems/sass-3.4.16/lib/sass/plugin/compiler.rb:209:in `update_stylesheets' from /var/lib/gems/1.9.1/gems/sass-3.4.16/lib/sass/plugin/compiler.rb:293:in `watch' from /var/lib/gems/1.9.1/gems/sass-3.4.16/lib/sass/plugin.rb:108:in `method_missing' from /var/lib/gems/1.9.1/gems/sass-3.4.16/lib/sass/exec/sass_scss.rb:384:in `watch_or_update' from /var/lib/gems/1.9.1/gems/sass-3.4.16/lib/sass/exec/sass_scss.rb:51:in `process_result' from /var/lib/gems/1.9.1/gems/sass-3.4.16/lib/sass/exec/base.rb:52:in `parse' from /var/lib/gems/1.9.1/gems/sass-3.4.16/lib/sass/exec/base.rb:19:in `parse!' from /var/lib/gems/1.9.1/gems/sass-3.4.16/bin/sass:13:in `<top (required)>' from /usr/local/bin/sass:23:in `load' from /usr/local/bin/sass:23:in `<main>' 

为了提高读取速度,Sass缓存分析后的文档以供重用,只有在更改时再次解析文档。 默认情况下,Sass将这些缓存的文件写入:cache_location 。 当你开始有突然的Sass编译问题时,一个常见的罪魁祸首是你的.sass-cache 。 也许你升级了你的IDE,做了一些目录结构的改变,或者有时候OS更新(OSX臭名昭着的权限头痛)。 不管是什么情况,如果Sass不能访问.sass-cache或者某个东西已经不同步,那么事情会变得非常快速。

从你的描述中假设你只是从命令行运行sass watch而不是使用一些IDE编译工具,开始寻找你的.sass-cache的好地方是./tmp/sass-cache或者./.sass-cache您的项目的./.sass-cache ,在这里详细。 请记住,该文件通常是默认隐藏的。 您可以尝试手动删除该文件夹,然后再次运行sass watch命令。 如果一切顺利的话,你的.sass-cache应该在你下次运行sass watch时候完全重建,你应该重新运行。

如果偶然的,你最近升级了你的操作系统,而且你正在运行OSX,那么Sass升级后似乎也有问题 ,听起来就像你在描述的那样。 似乎可以解决所有人的问题的建议中的修复建议运行sudo gem install -n /usr/local/bin sass

希望这可以帮助!