Точка останова установлена ​​​​с Bundler, но все еще выдает ошибку «не найдена или не читается» в Grunt

Я установил Breakpoint с помощью Bundler, как они предполагают, включил require "breakpoint" в мой config.rb и включил точку останова в мой файл 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, вызывающая ошибку Grunt

Я попытался установить другой гем с помощью Bundler, и 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, а также версии Compass 1.0.0.alpha.19 выше 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
            }
        }
    },

У кого-нибудь есть идеи, что может происходить? Или что я мог сделать, чтобы еще больше сузить причину?


person Craig    schedule 27.03.2014    source источник


Ответы (1)


У вас есть две проблемы. Первая проблема заключается в том, что ваши параметры Compass Grunt не указывают на ваш файл config.rb, поэтому Compass не знает, что от него требуется. Grunt Contrib Compass имеет возможность определить, что вам нужно, с помощью параметра require. Вторая проблема заключается в том, что вы не включили опцию bundleExec в Compass, которая необходима, если вы хотите запустить Bundler. Итак, вы должны добавить следующее в compass.options (при условии, что вы не хотите читать из вашего config.rb файла:

bundleExec: true, require: ['breakpoint']

person Snugug    schedule 27.03.2014
comment
Я буквально только что наткнулся на часть этого ответа. Теперь работает как шарм. - person Craig; 27.03.2014