Javascript Grunt contrib sass不使用指南针

Javascript Grunt contrib sass不使用指南针,javascript,gruntjs,Javascript,Gruntjs,我是Grunt的新手,正在尝试配置Grunt contrib sass与Compass一起工作 我正在使用grunt contrib sass插件,因为我需要将我的.scss文件导出到两个不同的目的地,而我无法使用grunt contrib compass 我遇到的问题是,在编译.scss文件时,终端中会出现“错误:无法加载指南针” 这是我的Grunfile.js的副本 module.exports = function(grunt){ grunt.initConfig({ ug

我是Grunt的新手,正在尝试配置Grunt contrib sass与Compass一起工作

我正在使用grunt contrib sass插件,因为我需要将我的.scss文件导出到两个不同的目的地,而我无法使用grunt contrib compass

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

这是我的Grunfile.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

谢谢

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

Grunt contrib sass不支持低于v1.0.0的compass版本(在编写本文时为alpha版本)

在使用更新罗盘之后

gem install compass --pre

在编译方面,一切似乎都很好。如上所述使用了相同的gruntfile.js。

删除除已知工作版本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

我找到了另一种不用红宝石就能让指南针工作的方法。(尽管这是一项工作)

转到并获取代码。 将core/stylesheets/compass的内容复制到sass/scss文件夹中。现在,您可以使用compass网站上的正常导入规则

但是:


您可能需要更改一些从compass导入的内容,如
import“compass/support”在_transitions.scss中导入到
导入“./支持”

grunt contrib sass与compass完美配合,只需将compass:true添加到选项中即可。我在官方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'
                }
            ]
        }
    }

因此,没有一个答案对我完全有效,但它确实帮助我解决了这个问题

使用安装指南针时
gem安装指南针--pre

它安装了另一个版本的sass,所以根本不要安装sass,让compass安装为您完成

为了让它发挥作用

gem uninstall sass
gem install compass --pre
作为参考,这是npm库,我需要让它工作

npm install -g grunt grunt-contrib-sass grunt-contrib-watch grunt-livereload sass grunt-contrib-cssmin grunt-contrib-compass

是的,所有安装和运行的都是最新的稳定版本。如果运行
grunt-v
,输出是什么。你能把这个添加到你的问题中吗?是的,我能,尽管Grunt在编译sass和观看等方面工作得很好。我只是不能导入任何Compass的库。你正在使用
Grunt contrib sass
。看看我的编辑是否有用。谢谢@mmjmanders的编辑。从那以后,我就有点挠头了。grunt contrib sass似乎不支持Compass版本<1.0.0。