Search code examples
node.jsgruntjsuglifyjs

Grunt: "Uglification failed"


I'm trying to use a gruntfile to uglify my JS and CSS. The one problem is that uglify doesn't work, the terminal gives a very vague error...

Gruntfile.js

module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uglify:
    {
      js:
      {
        files: { 'compressed/javascript.min.js': ['js/*.js'] }
      },
      css:
      {
        files: { 'compressed/css.min.css': ['css/*.css'] }
      }
    }
  });

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

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

};

package.json

{
  "name": "my-project-name",
  "version": "0.1.0",
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-jshint": "~0.6.3",
    "grunt-contrib-nodeunit": "~0.2.0",
    "grunt-contrib-uglify": "~0.2.2",
    "grunt-contrib-imagemin": "~0.3.0"
  }
}

Terminal output:

MacBook-Pro-van-Valerie:grunt valerieeskens$ grunt
Running "uglify:js" (uglify) task
>> Uglifying source "js/javascript1.js,js/javascript2.js" failed.
Warning: Uglification failed. Use --force to continue.

Aborted due to warnings.
MacBook-Pro-van-Valerie:grunt valerieeskens$ 

Map structure: http://d.pr/i/CxVJ


Solution

  • Uglify is for JavaScript, not CSS. Use grunt-contrib-cssmin if you want to compress your CSS files. The problem here seems to be the JS itself though, and I've tried that pattern in my Uglify config and it works OK. Have you run JSHint on your JavaScript source files? It may be a problem with the input itself.