Подтвердить что ты не робот

Compass: вы должны скомпилировать отдельные таблицы стилей из каталога проекта

Некоторое время назад я использовал компас для создания таблиц стилей из sass для проекта.

Недавно я вернулся к этому проекту. Я пошел в свой каталог sass и сделал "compass watch --debug.:.". Это вызвало ошибку "Вы должны скомпилировать отдельные таблицы стилей из каталога проекта".

Я обнаружил, что в каталоге не было config.rb. Поэтому я воссоздал один. Это выглядит так:

http_path = "/"
css_dir = "/css"
sass_dir = "/css"
images_dir = "/img"
javascripts_dir = "/js"
preferred_syntax = :sass

Однако все мои попытки использовать компас приводят к той же ошибке, независимо от того, какие значения я вставляю в конфигурацию.

Как мне получить компас для фактического обработки моего sass?

4b9b3361

Ответ 1

просто наткнулся на эту проблему, и на нее уже ответил ответ в комментарии Арно Валле. Но просто для ясности, и люди позже искали.

Просто создание config.rb не будет работать, поскольку компас не узнает его. Ответ просто переключится на каталог проекта (root), а затем запустите

compass init

Затем вы создадите "рабочий" config.rb, а два каталога, называемые sass, и таблицы стилей, в каталоге sass будут представлять собой пару стартовых scss файлов.

Если вы не хотите их или хотите использовать разные каталоги, вы можете теперь отредактировать только что созданный и рабочий config.rb и изменить свои каталоги (а затем удалить старые автоматически созданные)

О, и я подозреваю, что ваши js не будут в папке javascripts, поэтому отредактируйте это в config.rb

В любом случае, выполнив это (или нет), вы сможете запустить

compass watch

и все должно быть хорошо, т.е. ваши файлы scss скомпилируются в файлы css

В качестве альтернативы я не пробовал, но теоретически

compass compile [path/to/scss]

тоже должен работать, если вы не хотите инициализировать компас

Дополнительная информация, содержащаяся в документации компаса здесь

и полностью перейти сверху, если это то, что вы часто делаете, и ненавидите по умолчанию, затем редактируйте/добавляйте следующее в свой файл ~/.bash_profile

alias compass_init="compass init --syntax=sass --css-dir=css --javascripts-dir=js"

Ответ 2

Обычно у меня есть config.rb в каталоге проекта (или в корневом каталоге), а не в каталоге sass.

Структура папок будет выглядеть следующим образом:

  • config.rb
  • --- css
  • --- sass

Также ваши css_dir и sass_dir имеют одинаковое значение, что также может привести к вашей проблеме.

Ответ 3

Удалите "/" перед именами ваших каталогов.

Эта ошибка возникает, когда исходный путь неверен. В вашем случае у ваших каталогов есть дополнительные "/". Удаление их должно устранить вашу проблему.

Как говорили другие, создание config.rb с compass init также исправит его.

Обратите внимание, что Config.rb не требуется при использовании Grunt или аналогичных бегунов, которые запускают компас. Возможно, это было так, как раньше работал ваш проект без файла config.rb. Бегун начинает компас со всеми путями и параметрами в Gruntfile.js. Наличие путей/параметров в файле Gruntfile и config.rb может вызвать проблемы.

Ответ 4

Если бы эта проблема была в Windows 7 с помощью Symfony с Gulp, я решил ее использовать с помощью абсолютных путей следующим образом:

gulp.task('compass', function() {
gulp.src('c:/wamp/www/mnv/src/Mnv/Bundle/MnvBundle/Resources/public/sass/*.scss')
    .pipe(compass({
        config_file: 'c:/wamp/www/mnv/src/Mnv/Bundle/MnvBundle/Resources/public/config.rb',
        css: 'c:/wamp/www/mnv/src/Mnv/Bundle/MnvBundle/Resources/public/stylesheets',
        sass: 'c:/wamp/www/mnv/src/Mnv/Bundle/MnvBundle/Resources/public/sass'
    }))
    .pipe(gulp.dest('c:/wamp/www/mnv/web/css'));
 });

Ответ 5

Для тех, кто хочет скомпилировать SCSS без создания целого проекта (например, для одноразовой страницы), вы можете просто создать config.rb, но ему нужно как минимум два параметра: css_dir и sass_dir. (touch -ing недостаточно). Минимальный config.rb:

css_dir='.';sass_dir='.'

Это эффективно создает проект компаса с целью компиляции простых файлов. Вам нужно будет включить остальные параметры, если вы хотите использовать спрайты и т.д. Предполагая, что компас может записать в каталог, он создаст каталог .sass-cache после запуска compass compile или compass watch для первого время.

Также важно отметить, что команды компаса должны запускаться из каталога с помощью config.rb, или вы получите эту ошибку.

Наконец, если вы просто хотите использовать простые функции SASS (а не компоненты компонентов Compass), прямой САСС часто проще:

sass --watch foo.scss:foo.css

Ответ 6

Я столкнулся с той же проблемой, используя gulp-compass-compile. Исправлено это, изменив опцию srcDir (которая преобразуется в параметр --sass-dir в компиляционном вызове компаса) для функции compass от ./src/scss до src/scss. Надежда, которая помогает кому-то.