.ru.css文件的Grunt cssmin

时间:2014-02-10 10:45:14

标签: gruntjs grunt-contrib-cssmin

使用grunt和cssmin来缩小我的CSS。

但是,在我的css assets文件夹中,我有一些扩展名为.min.css的css。因此,当我运行grunt时,只有源文件夹中包含.css的文件才会缩小到build文件夹中。源文件夹中包含.min.css的文件将在build文件夹中找到,但.min扩展名将丢失。即bootstrap.min.css将成为bootstrap.css

我的Gruntfile.js如下

module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uglify: {
      options: {
        banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
      },
      build: {
        files: [{
            expand: true,
            src: '**/*.js',
            dest: 'resources/front/js',
            cwd: 'assets/front/js'
        }]
      }
    },
   cssmin: {
      minify: {
        expand: true,
        cwd: 'assets/front/css/',
        src: ['*.css', '*.min.css'],
        dest: 'resources/front/css/',
        ext: '.css'
      }
    }

    });

  // Load the plugin that provides the "uglify" task.
  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-cssmin');

  // Default task(s).
  grunt.registerTask('default', ['uglify','cssmin']);

};

.min.css文件是否仍然可以缩小并位于build文件夹中并保留正确的“.min.css”扩展名?

2 个答案:

答案 0 :(得分:2)

修改

请参阅this answer以获得对文件名重命名的最大控制权。


试试这个:

cssmin: {
  minify: {
    files: [{
      expand: true,
      cwd: 'assets/front/css/',
      src: ['*.css', '!*.min.css'],
      dest: 'resources/front/css/',
      ext: '.css'
    }, {
      expand: true,
      cwd: 'assets/front/css/',
      src: ['*.min.css'],
      dest: 'resources/front/css/',
      ext: '.min.css'
    }]
  }
}

第一个文件块将仅缩小*.css个文件并保留这些文件的.css扩展名。第二个文件块将仅缩小*.min.css个文件,并保留这些文件的.min.css扩展名。

答案 1 :(得分:2)

我使用grunt-contrib-copy:只需将* .min.css复制到dest。

首先,排除所有* .min.css文件

cssmin:{
    min:{
        files:[{
            expand:true,
            cwd:'css',
            src:['*.css','!*.min.css'],
            dest:'release/css',
            ext:'.min.css'
            }]
        }
    }

其次,将所有* .min.css从css文件夹复制为src到release / css文件夹作为dest

copy:{
      main:{
            files:[{
                   // Copy *.min.css 
                   expand:true,
                   src:['css/**/*.min.css'],
                   dest:'release/'
                  }]
            }
      }