Grunt-contrib-compass: неясная ошибка конфигурации при попытке работы с 2 проектами

#ruby #wordpress #gruntjs #compass-sass #grunt-contrib-compass

#ruby #wordpress #gruntjs #compass-sass #grunt-contrib-compass

Вопрос:

Я пытаюсь воспользоваться советом великого Дэвида Херерры о том, как использовать grunt-contrib-compass родительские и дочерние темы WordPress. Вы можете найти его руководство здесь:https://gist.github.com/dlh01/5726683

Но на мой вопрос: у меня есть 2 проекта (родительская тема и дочерняя тема) с 2 разными importPath s. Мой gruntfile.js для них обоих находится в корне моего веб-проекта. Я получаю следующую ошибку:

Ничего не компилировать. Если вы пытаетесь запустить новый проект, вы не указали аргумент directory.

Я не совсем уверен, что означает ошибка — в документации плагина нет «аргумента каталога». Хотя я уверен, что я, должно быть, упускаю что-то очевидное. 🙂 Вот соответствующая часть моего gruntfile.js :

     compass: {
            options: {
                // Directories
                sassDir: 'sass/dev/',
                imagesDir: 'img/public/',
                javascriptsDir: 'js/public/',
                fontsDir: 'font/',
                // Options
                environment: 'development',
                outputStyle: 'expanded',
                //relativeAssets: true
            },
            parent: {
                options: {
                    importPath: 'web/app/themes/wpgrouse-theme-parent/assets/sass-parent/dev/',
                    httpPath: 'web/app/themes/wpgrouse-theme-parent/assets/',
                    cssDir: '/'
                }
            },
            child: {
                options: {
                    importPath: 'web/app/themes/wpgrouse-theme-parent/assets/sass/dev/',
                    httpPath: 'web/app/themes/lifeforce/assets/',
                    cssDir: '/'
                }
            }
    },
  

Я пробовал различные решения «voodoo», но ни одно из них не работает. После некоторого перебора аргументов я даже получил это:

Ошибка выполнения в строке 52 /System /Library /Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/tempfile.rb: не удается сгенерировать временный файл `/style.css20140702-6925-1cg6d1c-9′

Можете ли вы пролить немного света на то, что я делаю неправильно? Спасибо. Быстрый ответ был бы очень признателен, так как я сильно отстаю от своего крайнего срока, и это очень расстраивает. 🙂

Спасибо, P!

Редактировать

Также, вероятно, полезно добавить, что когда я работал с одним проектом, все шло нормально, поэтому, должно быть, проблема с частью «конфигурация 2 проектов», которую я gruntfile.js разместил здесь.

Редактировать 2

Если я укажу basePath аргумент в каждом проекте ( parent и child ), указывающий на тот же каталог, что и httpPath аргумент, я получаю ранее упомянутую ошибку о временном файле. Помогает ли это?

Комментарии:

1. что, если эта строка является строкой 52?

2. Ошибка выполнения после моих «voodoo sollutions» не указывает ни на какие файлы, с которыми я возился, поэтому я действительно не знаю. Из-за этого я не думаю, что это связано с реальной проблемой.

3. @DanielSchmidt, пожалуйста, посмотрите мою правку.

Ответ №1:

При запуске ‘grunt watch’ и попытке принудительной компиляции моего sass я также получал ошибку:

не удается сгенерировать временный файл `./.sass-cache/…»

Оказалось, что это проблема с моими настройками разрешений на сервере. У меня не было разрешения на запись в папку .sass-cache. Все, что мне нужно было сделать, это запустить

sudo chmod -R 777 .sass-cache/

и ошибка исчезла!