Grunt Compass适用于不同站点的多个SASS文件

时间:2014-08-06 11:20:47

标签: gruntjs grunt-contrib-watch grunt-contrib-compass

我有很多不同的部分和sass文件来生成11个单独的网站特定样式表,所以如果我对所有11个样式表中使用的部分进行更改,那么我必须等待grunt编译所有这些之前我可以刷新浏览器并查看更改,我的一个解决方法是使用指定选项并根据我正在处理的网站更改网站ID -

compass: {
    dev: {
        options: {
            sassDir: "assets/sass",
            specify: "assets/sass/site_##.scss",
            cssDir: "assets/styles",
            outputStyle: "expanded",
            noLineComments: false,
            sourcemap: true
        }
    }
},

watch: {
    css: {
        files: 'assets/sass/**/*',
        tasks: 'compass',
    },
},

有没有办法可以在监视任务中使这种动态变化,即使用附加在身体上的ID或什么?

我的偏见 -

  • _reset
  • _grid
  • _layout
  • _variables
  • _mixins
  • _brand1
  • _brand2
  • _brand3
  • _summer
  • _winter
  • _site_1_specific
  • _site_2_specific
  • _site_3_specific
  • _site_4_specific
  • _site_5_specific
  • _site_6_specific
  • _site_7_specific
  • _site_7_specific
  • _site_9_specific
  • _site_10_specific
  • _site_11_specific

然后我有11个SCSS文件导入上述部分的组合以制作最终的样式表。

1 个答案:

答案 0 :(得分:1)

您可以使用grunt-newer,它可以帮助您仅在更改的文件中执行指南针任务:

https://github.com/tschaub/grunt-newer

npm install grunt-newer --save-dev

grunt.loadNpmTasks('grunt-newer');

然后,您必须更改watch任务:

watch: {
    css: {
        files: '<%= tui.sass %>/**/*',
        tasks: ['newer:compass']
    },
},

希望它有所帮助。

问候。