无法使用grunt-contrib-cssmin创建缩小的css文件

时间:2014-07-31 12:35:38

标签: gruntjs grunt-contrib-cssmin

我第一次使用grunt,我能够使用grunt-contrib-concat连接css文件但是在使用grunt-conrib-cssmin创建缩小的css文件时出现以下错误

错误是:

>> TypeError: Cannot call method 'clone' of undefined
Warning: CSS minification failed. Use --force to continue.

我的package.json文件是:

    {
        "name": "grunt-test-project",
        "description":"testing grunt css and js files minification",
        "repository":"",
        "version": "0.1.0",
        "devDependencies": {
            "grunt": "~0.4.5",
            "grunt-contrib-concat": "~0.5.0",
            "grunt-contrib-cssmin" : "~0.10.0"
        }
    }

我的Gruntfile.js文件是:

module.exports = function(grunt) {

    // Project configuration.
    grunt.initConfig({

        pkg: grunt.file.readJSON('package.json'),

        concat: {
            css: {
                src: [
                    'css/popup.css', 'css/styles_layouts.css', 'css/style.css', 'css/fileuploader.css','css/uniform.default.css',
                    'css/login_popup.css','css/validationEngine.jquery.css','css/ui-custom/jquery-ui.css'
                ],
                dest: 'css/build/combined.css'
            }

        },

        cssmin: {
            css:{
                src: 'css/build/combined.css',
                dest: 'css/build/combined.min.css'
            }
        }
    });


    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-cssmin');

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

}

如果你能提供一些解决方案,那将对我有所帮助。

谢谢你

3 个答案:

答案 0 :(得分:0)

您遇到cssmin配置问题。 尝试改变它:

    cssmin: {
        css:{ 
            files: {
              'css/build/combined.min.css': ['css/build/combined.css']
            }
        }
    }

也许这可以解决您的问题。

希望它有所帮助。

问候。

答案 1 :(得分:0)

您可能忘了注册任务:

grunt.registerTask('default', ['concat', 'cssmin']);

答案 2 :(得分:0)

您的代码与grunt-contrib-cssmin documentation page.`

的代码略有不同
cssmin: {
  options: {
    shorthandCompacting: false,
    roundingPrecision: -1
  },
  target: {
    files: {
      'output.css': ['foo.css', 'bar.css']
    }
  }
}

`