css - Sass watch 权限被拒绝 - 没有指南针

标签 css linux 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 运行命令,它似乎确实运行了。 watch 发现在 scss 文件中进行了更改,但这些更改在刷新后不会像之前使用 watch 命令那样显示。我必须重建并启动服务器以使更改实际显示在我的本地站点上。

我认为这可能是缓存问题,但不确定。我没有使用指南针,而且我读到的大多数解决方案似乎都与指南针有关。

下面是在不使用 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,更改了一些目录结构,或者有时更新了操作系统(OSX 因权限问题而臭名昭著)。不管是什么情况,如果 Sass 无法访问 .sass-cache 或者某些东西不同步,事情会很快变得相当棘手。

根据您的描述假设您只是从命令行运行 sass watch 而没有使用某些 IDE 编译工具,这是开始寻找您的 .sass-cache 是您元素的 ./tmp/sass-cache./.sass-cache,详见 here .请记住,默认情况下该文件通常是隐藏的。您可以尝试手动删除该文件夹,然后再次运行您的 sass watch 命令。如果一切顺利,您的 .sass-cache 应该在您下次运行 sass watch 时完全重建,并且您应该再次启动并运行。

如果碰巧您最近升级了操作系统并且正在运行 OSX,那么似乎确实有一个 issue with Sass post-upgrade这听起来也像你所描述的。评论中建议的修复程序似乎可以解决每个人的问题,即运行 sudo gem install -n/usr/local/bin sass

希望这对您有所帮助!

关于css - Sass watch 权限被拒绝 - 没有指南针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37055758/

相关文章:

javascript - 替换响应表以获得更好的标记和可访问性

javascript - 使用 resize 调整 div 大小并使其可拖动

linux - 读取文件第一列的 csv 并使用 UNIX shell 脚本在文件系统上搜索与第一列中的值相同的目录

php - 如何使我的系统更加安全?我可以看到一些入侵者试图破解我的网络应用程序

twitter-bootstrap - Angular 2 : How to use bootstrap-sass with @extend and mixins in Angular-CLI?

css - 为什么 flex-basis 属性会被覆盖?

html - 图像悬停的猫头鹰轮播 div 高度

Java删除文件/目录相当于linux "rm -rf/tmp/garbagedir*"

css - 如何检查sass中的 undefined variable

rubygems - 如何使用 gem install 降级到旧版本的 compass?