Grunt:如何将.CSS文件连接到我编译的.SCSS文件上?

时间:2014-06-16 20:55:55

标签: css sass gruntjs concatenation grunt-contrib-concat

我正在学习咕噜声,这太棒了!

背景

我的项目是使用SASS(.scss)构建的,我使用grunt的compass插件将多个.scss编译为输出中的单个.CSS

问题:

我正在使用一个jQuery插件,该插件有一个与之关联的.css文件。我希望我的Grunt做如下:

  1. 将* .SCSS编译为frontend.css
  2. 完成后,将plugin.css连结到frontend.css
  3. 的末尾
  4. 缩小frontend.css
  5. 我已经尝试为我的CSS添加一个concat规则,该规则在grunt指南针编译之后运行。 concat规则如下所示。

    concat: {
      css: {
        src: ['www/assets/css/frontend.css',
              'bower_components/bootstrap-datepicker/css/plugin.css'],
        dest: 'www/assets/css/frontend.css'
      }    
    }
    

    这是grunt任务的样子:

      grunt.registerTask('default', ['newer:concat:vendors', 'copy', 'uglify', 'compass:dist', 'newer:concat:css', 'newer:cssmin', 'newer:imagemin']);
    

    以下是我正在使用的Grunt插件列表:

     // Load Grunt Tasks 
     grunt.loadNpmTasks('grunt-contrib-concat');
     grunt.loadNpmTasks('grunt-contrib-uglify');
     grunt.loadNpmTasks('grunt-contrib-cssmin');
     grunt.loadNpmTasks('grunt-contrib-compass');
     grunt.loadNpmTasks('grunt-contrib-watch');
     grunt.loadNpmTasks('grunt-contrib-copy');
     grunt.loadNpmTasks('grunt-contrib-imagemin');
     grunt.loadNpmTasks('grunt-newer');
    

    如果我调用concat:css,则会连接plugin.css,但是每次运行任务时,都会再次添加,再次添加,因此将相同CSS的多个副本插入到文件中。

    如果我拨打newer:concat:css,则该文件不会连接到frontend.css

    非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

最简单的解决方案是使用grunt-contrib-clean,它可以简单地删除每个版本的文件:

clean: {
    css: ['www/assets/css/frontend.css']
}

或者没有安装插件:

grunt.registerTask('clean:css', function () {
    grunt.file.delete('www/assets/css/frontend.css');
});