断点与Bundler一起安装,但仍然在Grunt中抛出“未找到或不可读”的错误

时间:2014-03-27 19:10:58

标签: sass bundler compass-sass breakpoint-sass

我已根据他们的建议使用Breakpoint安装Bundler,在我的config.rb中包含require "breakpoint",并在罗盘后的main.scss文件中包含断点。

当我运行grunt编译所有内容时,我收到以下错误:

error app/styles/main.scss (Line 5: File to import not found or unreadable: breakpoint.
Load paths:
    /Users/craigmdennis/Sites/craigmdennis.com/app/styles
    /Users/craigmdennis/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/compass-core-1.0.0.alpha.19/stylesheets
    /Users/craigmdennis/Sites/craigmdennis.com/app/bower_components
    Compass::SpriteImporter)

因此grunt无法找到指定的文件,但让我相信它可能无法正确安装。它似乎与此问题非常相似:Sass Breakpoint causing Grunt error

我尝试用Bundler安装另一个gem,grunt也找不到该文件;结果出现同样的错误。

这是我运行bundle时的输出:

Using sass (3.3.4)
Using chunky_png (1.3.0)
Using multi_json (1.9.2)
Using compass-core (1.0.0.alpha.19)
Using compass-import-once (1.0.4)
Using json (1.8.1)
Using rb-fsevent (0.9.4)
Using ffi (1.9.3)
Using rb-inotify (0.9.3)
Using rb-kqueue (0.2.2)
Using listen (1.1.6)
Using compass (1.0.0.alpha.19)
Using sassy-maps (0.3.2)
Using breakpoint (2.4.2)
Using bundler (1.5.3)
Your bundle is complete!

这表示项目设置为使用最新版本的SASS以及高于1.0.0.alpha.19 required by Breakpoint的指南针版本13

这是我的Gemfile:

source 'https://rubygems.org';

gem "sass", "~>3.3.4";
gem "breakpoint", "~>2.4.0";

这是我的config.rb文件:

require 'breakpoint';

这是我的main.scss文件:

// Include Compass
@import "compass";

// Include Breakpoint
@import "breakpoint";

以下是我的Gruntfile的相关部分:

// Compiles Sass to CSS and generates necessary files if requested
    compass: {
        options: {
            sassDir: '<%= config.app %>/styles',
            cssDir: '.tmp/styles',
            generatedImagesDir: '.tmp/images/generated',
            imagesDir: '<%= config.app %>/images',
            javascriptsDir: '<%= config.app %>/scripts',
            fontsDir: '<%= config.app %>/styles/fonts',
            importPath: '<%= config.app %>/bower_components',
            httpImagesPath: '/images',
            httpGeneratedImagesPath: '/images/generated',
            httpFontsPath: '/styles/fonts',
            relativeAssets: false,
            assetCacheBuster: false
        },
        dist: {
            options: {
                generatedImagesDir: '<%= config.dist %>/images/generated'
            }
        },
        server: {
            options: {
                debugInfo: true
            }
        }
    },

有没有人有任何想法会发生什么?或者我可以做些什么来进一步缩小原因?

1 个答案:

答案 0 :(得分:2)

你有两个问题正在发生。第一个问题是你的Compass Grunt选项没有指向你的config.rb文件,因此Compass并不知道需要什么。 Grunt Contrib Compass能够通过require选项定义您想要的内容。第二个问题是你没有在Compass中启用bundleExec选项,如果你想通过Bundler运行则需要这个选项。因此,您应该将以下内容添加到compass.options(假设您不想阅读config.rb文件:

bundleExec: true, require: ['breakpoint']