我目前在使用Gulp编译Sass时遇到两个问题。首先,我在“/ Library / Ruby / Gems”目录中设置了777权限,以释放我得到的一些权限错误。我每次运行Gulp时都会收到警告,说明以下内容:
gulp-ruby-sass: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin13/rbconfig.rb:213: warning: Insecure world writable dir /Library/Ruby/Gems/2.0.0 in PATH, mode 040777
其次,当Gulp在我的主要SCSS文件中遇到一些“@import”声明时,事情似乎停止了Sass编译。也就是说,我收到以下错误:
gulp-ruby-sass: error ./screen.scss (Line 4: File to import not found or unreadable: normalize.
Load paths:
/private/var/folders/cq/_pg4s6qn59q1q5fyy5681rd00000gn/T/gulp-ruby-sass/bower_components/compass-breakpoint/stylesheets
/private/var/folders/cq/_pg4s6qn59q1q5fyy5681rd00000gn/T/gulp-ruby-sass/bower_components/susy/sass
/private/var/folders/cq/_pg4s6qn59q1q5fyy5681rd00000gn/T/gulp-ruby-sass/bower_components/normalize-scss
/private/var/folders/cq/_pg4s6qn59q1q5fyy5681rd00000gn/T/gulp-ruby-sass)
这些加载路径看起来不正确...我已经通过Bower专门为这个项目安装了这些组件,所以我似乎需要告诉Gulp / NPM查看我的项目文件夹。
非常感谢任何帮助!
答案 0 :(得分:5)
看起来这个问题只是我和自己说了很多话,但我还是会和世界分享我的发现。
事实证明,这是gulp-ruby-sass包的一个已知问题。看到: https://github.com/sindresorhus/gulp-ruby-sass/pull/80#issuecomment-49531932
" loadPath"中指定的路径我的gulpfile中的选项与我正在使用的项目中的gulpfile位置无关,所以它最终在一个不应该有的文件夹中寻找一些Bower组件,例如:
/private/var/folders/cq/_pg4s6qn59q1q5fyy5681rd00000gn/T/gulp-ruby-sass/bower_components/compass-breakpoint/stylesheets
我发现,通过将 process.cwd()添加到我的每个文件路径中,它们将成为相对的。
如果您查看GitHub链接,我在上面添加了几行,您会注意到这只是一个临时的解决方法,直到将此修复程序实现到gulp-ruby-sass的主分支中,所以这个建议在不久的将来某些时候会变得无关紧要。
希望这可以帮助那些处于类似困惑状态的人。
*编辑*
至于我为gulp-ruby-sass获取的权限警告,结果我只需要运行sudo chmod -R 775 /Library/Ruby/Gems/2.0.0
来递归更改Gems目录中的权限。