2014-04-13 67 views
2

我是Grunt的新手,并且正在尝试配置grunt-contrib-sass与Compass一起工作。Grunt-contrib-sass不能与指南针一起工作

我正在使用grunt-contrib-sass插件,因为我需要将我的.scss文件导出到两个单独的目的地,并且我无法使用grunt-contrib-compass工作。

我遇到的问题是在编译.scss文件时出现错误:无法在终端中加载指南针。

这里是我的gruntfile.js的副本;

module.exports = function(grunt){ 

    grunt.initConfig({ 

    uglify: { 
     my_target: { 
     files: { 
      'wp-content/themes/mytheme/js/functions.js' : [ 'components/js/*.js' ] 
     } 
     } 
    }, // uglify 

    sass:{ 
     dist:{ 
     files: { 
      'wp-content/themes/mytheme/style.css' : 'components/sass/style.scss', 
      'wp-content/themes/mytheme/css/ie.css' : 'components/sass/ie.scss ' 
     }, 
     options: { 
     compass: true, 
     } 
    } 
    }, 

    watch: { 
    scripts : { 
     files: ['components/js/*.js'], 
     tasks: ['uglify'] 
    }, 
    css: { 
     files: [ 'components/sass/*.scss'], 
     tasks: [ 'sass' ], 
     options: { livereload: true } 
    }, 
    livereload: { 
     options: { livereload: true }, 
     files: ['wp-content/themes/mytheme/'], 
    }, 
    } // watch 

}) 

grunt.loadNpmTasks('grunt-contrib-uglify'); 
grunt.loadNpmTasks('grunt-contrib-sass'); 
grunt.loadNpmTasks('grunt-contrib-watch'); 

grunt.registerTask('default', 'watch'); 

} // exports 

谢谢!

回答

10

Grunt-contrib-sass不支持指南针版本低于v1.0.0(在编写本文时为alpha)。

更新指南针后;

gem install compass --pre 

一切似乎在编译工作正常。上面使用了相同的gruntfile.js。

2

根据grunt-contrib-compass github页面,您需要安装Ruby,Sass和Compass作为先决条件。您正在使用grunt-contrib-sass而不是grunt-contrib-compass。请参阅contrib-compass github上的examples

+0

是的,所有已安装并运行最新的稳定版本。 – mrbubbles

+0

如果你运行'grunt -v',输出是什么。你可以添加到你的问题? – mmjmanders

+0

是的,我可以,虽然Grunt可以很好地编译sass和观看等。我不能导入任何Compass的库。 – mrbubbles

2

删除除已知工作版本3.2.19之外的所有版本的sass为我解决了这个问题。

$ sudo gem uninstall sass 
Select gem to uninstall: 
1. sass-3.2.3 
2. sass-3.2.5 
3. sass-3.2.19 
4. sass-3.3.5 
5. All versions 
> 4 
+0

为我工作,谢谢! – dardo

0

我发现了另一种方法来让指南针在没有红宝石的情况下工作。 (虽然有点工作)。

转到https://github.com/Compass/compass并获取代码。 将core/stylesheets/compass的内容复制到sass/scss文件夹中。现在您可以使用罗盘网站的正常导入规则。

但是:

你可能有改变从指南针_transitions.scss部分进口喜欢import "compass/support";import "../support";

0

咕噜-的contrib - 萨斯带指南针完美的作品,只需添加指南针:真实的选项。我在官方的git仓库上阅读了这一点。

sass: { 
     dist: { 
      options: { 
       style: 'expanded', 
       compass: true 
      }, 
      files: [ 
       { 
        expand: true, 
        cwd: 'ipa-framework/src/css/scss', 
        src: ['*.scss'], 
        dest: 'ipa-framework/src/css', 
        ext: '.css' 
       } 
      ] 
     } 
    }