我有一个在 grunt 上运行的指南针任务,它生成一个已编译的base.css文件以及一些特定于页面的 css 文件。base.scss @imports一个_settings.scss部分,它规定了所有文件的一些全局设置。
compass: {
theme: {
options: {
sassDir: '/sass',
cssDir: 'css',
fontsPath: 'css/fonts',
imagesPath: 'img'
}
}
}
我希望能够多次调用罗盘任务,但每次都以某种方式规定在 base.scss 中导入不同的设置文件,并且 a 使用不同的cssDir输出。这是可以实现的吗?
我尝试使用以下方法,主要涉及在两个不同的罗盘任务中添加罗盘 config.rb(通过 raw)。每个任务都包含不同的导入路径,指向包含设置文件的目录。然后在我的 base.scss 顶部将该设置文件作为@import settings.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"'
}
}
}
这似乎可行,尽管感觉像是 hack,但它是我最接近可行的解决方案。似乎应该有办法做到这一点,但到目前为止,解决方案已经暗示了我。
我现在想知道是否可以使用 registerTask() 来创建我需要的功能,就像我在这里找到的那样: