我正在尝试将 grunt-contrib-compass 用于具有多个应用程序文件夹的 AngularJS 项目。这是我的基本目录结构:
/root
/appA
/appB
...
/appX
/public
/modules
/moduleName
/css
/sass
gruntfile.js 存储在 /root
我的指南针任务设置如下:
compass: {
dev: {
options: {
cssDir: 'app*/public/modules/**/css',
sassDir: 'app*/public/modules/**/sass',
outputStyle: 'compressed'
}
}
}
请注意“cssDir”和“sassDir”中的通配符选择器 (*)。
当此任务运行时,它会在为“sass”指定的目录中成功找到 .scss 文件。但是,在创建 .css 文件时,它会在 /root 中创建一个新的文件夹结构,如下所示:
/root
/app*
/public
/modules
/**
/css
“css”文件夹留空,实际的 .css 文件保存在与我的 .scss 文件相同的目录中。
例如,这是运行 compass 任务时其中一个 .scss 文件的终端输出:
>> File "appStudentHousing/public/modules/studentHousingHome/sass/styles.scss" changed.
Running "compass:dev" (compass) task
directory appStudentHousing/public/modules/studentHousingHome/sass
write appStudentHousing/public/modules/studentHousingHome/sass/styles.css (0.003s)
该任务似乎在“sassDir”选项中识别通配符选择器,但在“cssDir”选项中无法识别它们。它会在实际文件夹名称中创建一个带有星号的空白文件夹结构,然后出于某种原因,它将输出 .css 文件保存在与 .scss 文件相同的文件夹中。
非常感谢您提供的任何见解。