У меня есть задача компаса, работающая на grunt, которая создает скомпилированный файл base.css, а также ряд файлов css для конкретных страниц. base.scss @импортирует партиал _settings.scss, который диктует некоторую глобальную настройку для всех файлов.
compass: {
theme: {
options: {
sassDir: '/sass',
cssDir: 'css',
fontsPath: 'css/fonts',
imagesPath: 'img'
}
}
}
Я хочу иметь возможность вызывать задачу компаса несколько раз, но каждый раз каким-то образом оговаривать, что в base.scss импортируется другой файл настроек, а для вывода используется другой cssDir. Это достижимо?
Я попытался использовать описанный ниже подход, включающий, по сути, добавление к компасам config.rb (через необработанные данные) в двух разных задачах компаса. Каждая задача включает отдельный путь импорта в каталог, содержащий файл настроек. Затем этот файл настроек выбирается как @import settings.scss вверху файла base.scss.
compass: {
theme: {
options: {
httpPath: '/',
sassDir: '/sass',
cssDir: 'css',
raw: 'add_import_path "/sass/theme"'
}
},
theme2: {
options: {
httpPath: '/',
sassDir: '/sass',
cssDir: 'css',
raw: 'add_import_path "/sass/theme2"'
}
}
}
Кажется, это работает, и хотя это похоже на взлом, это самое близкое к рабочему решению, которое у меня есть. Кажется, должен быть способ сделать это, но до сих пор решение упомянуло меня.
Теперь мне интересно, могу ли я использовать registerTask() для создания функциональности, которая мне нужна, в подходе, подобном тому, который я нашел здесь: