0

我正在使用 grunt 和 cssmin 来缩小我的 css。

但是,在我的 css 资产文件夹中,我有一些具有 .min.css 扩展名的 css。因此,当我运行 grunt 时,只有源文件夹中带有 .css 的文件才会被缩小到构建文件夹中。源文件夹中包含 .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' 扩展名?

4

2 回答 2

2

编辑

请参阅此答案以最大程度地控制文件名重命名。


试试这个:

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这些文件的扩展名。

于 2014-02-10T11:36:29.537 回答
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'
            }]
        }
    }

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

copy:{
      main:{
            files:[{
                   // Copy *.min.css 
                   expand:true,
                   src:['css/**/*.min.css'],
                   dest:'release/'
                  }]
            }
      }
于 2015-04-22T01:34:46.743 回答