0

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

背景:

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

问题:

我正在使用一个 jQuery 插件,它有一个.css与之关联的文件。我希望我的 Grunt 执行以下操作:

  1. 将 *.SCSS 编译成frontend.css
  2. 完成后,连接plugin.css到末尾frontend.css
  3. 缩小frontend.css

我尝试为我的 CSS 添加一个 concat 规则,该规则在 grunt compass 编译后运行。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.

非常感谢任何帮助!

4

1 回答 1

1

最简单的解决方案是使用grunt-contrib-clean,它可以在每次构建时简单地删除文件:

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

或者不安装插件:

grunt.registerTask('clean:css', function () {
    grunt.file.delete('www/assets/css/frontend.css');
});
于 2014-06-16T21:36:10.987 回答