【发布时间】:2014-08-20 22:26:10
【问题描述】:
对于一个项目,我正在使用 SASS 3.2.19 和 Compass 0.12.5 以及 Grunt 的最新版本。
我的文件结构如下:
styles/
css/
page1.css
page2.css
page3.css
...
sass/
page1.scss
page2.scss
page3.scss
...
generics/
_general.scss
_menu.scss
_ie.scss
...
partials/
_sectionBegin.scss
_sectionClients.scss
...
在每个 pages{number}.scss 文件中,我像这样导入我实际需要的 scss 块:
@import "generics/general"; // inside this file _ie.scss is imported
@import "generics/menu";
@import "partials/sectionBegins";
@import "partials/sectionClients";
.additionalStyles {
background: url(/example/example-cover.jpg) no-repeat;
}
最后,这是我的 Gruntfile.js :
compass: {
dev: {
options: {
sassDir: ['styles/sass'],
cssDir: ['styles/css'],
outputStyle: 'expanded',
noLineComments: true,
environment: 'development'
}
},
...
grunt.registerTask('default', ['compass:dev' , 'watch']);
所以,我在这里所做的是将 Grunt 设置为监视 sass/ 存储库。一旦它检测到一些变化,page.css 就会被覆盖。
好吧,当只有几页时,这个项目结构实际上工作得很好,但现在我有 40 多页,编译时间大约需要 1 分钟。 确实假设我编辑了一个所有页面都使用的 .scss 文件,所有页面都必须被覆盖。
那么,我在这里缺少什么?我怎样才能改进我的项目文件结构,在类似的场景中你有一些很好的 gruntfile conf 例子吗?
【问题讨论】:
标签: sass gruntjs compass-sass grunt-contrib-watch