Css 当源文件夹有子文件夹时设置Compass目标文件夹
我正在通过grunt使用Compass编译SASS文件。我的目录结构如下所示:Css 当源文件夹有子文件夹时设置Compass目标文件夹,css,sass,gruntjs,grunt-contrib-compass,Css,Sass,Gruntjs,Grunt Contrib Compass,我正在通过grunt使用Compass编译SASS文件。我的目录结构如下所示: project/ Gruntfile.js package.json sass/ part1/ part1.sass css/ 还有我的Grunfile.js: grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), compass: { std:
project/
Gruntfile.js
package.json
sass/
part1/
part1.sass
css/
还有我的Grunfile.js:
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
compass: {
std: {
options: {
sassDir: 'sass',
cssDir: 'css',
specify: 'sass/part1/part1.sass',
raw: 'disable_warnings = true\n'
}
}
}
});
当我运行GrunFile时,Compass输出到project/css/part1/part1.css
,但我希望它输出到project/css/part1.css
。我该怎么做?现在我正在使用一个on_样式表保存的钩子来移动文件,但它不是很优雅
希望问题清楚,并提前感谢。我重新创建了您的环境。我可以进一步简化
grunfile.js
:
module.exports = function(grunt) {
// Main project configuration
grunt.initConfig({
// Read NPM package information
pkg: grunt.file.readJSON('package.json'),
// Compass
compass: {
std: {
options: {
cssDir: 'css',
sassDir: 'sass'
}
}
}
});
// Load the grunt tasks
grunt.loadNpmTasks('grunt-contrib-compass');
// Compile production files
grunt.registerTask('std', [
'compass:std'
]);
// Default task(s)
grunt.registerTask('default', 'std');
};
您得到的是预期的指南针行为
通过阅读《自述》,我发现:
Compass在文件夹级别运行。因此,您不指定任何src/dest,而是定义sassDir
和cssDir
选项
这意味着您不能更改CSS
编译到的路径,只能确定所有编译文件写入的根文件夹的路径
虽然这可能会让人恼火,compass
只是简单地假设,让编译符合目录结构应该是您更愿意做的事情——这有点自以为是
你仍然可以做你想做的事,方法是:
compass
希望它们符合您意图的位置。即删除part1
目录并将part1.sass
放在sass
文件夹下CSS
文件编译到一个临时文件夹(如tmp
),使用另一个任务(如copy
)将所有CSS
文件复制到CSS
文件夹,然后使用任务(如clean
)清空tmp
文件。您将按该顺序加载任务,以便它们按正确的顺序运行如果没有
Gruntfile.js
,我们真的不知道是什么导致了错误,但是这样的行为只能由错误的配置引起。把它贴在这里,我来看看。:)(顺便说一句,-1不是我的).@WallaceSidhrée我对问题进行了编辑,使其更加清晰,并包含了一个具体的最低限度的示例。如果您能提供任何帮助,我们将不胜感激!只是让问题的标题与您试图解决的问题更相关;)