Grunt丑化步骤失败

时间:2013-09-18 18:22:16

标签: javascript gruntjs uglifyjs

我是Grunt的新手,我正在尝试使用此配置

module.exports = function(grunt) {

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

    // Define our source and build folders
    js_src_path: 'javascripts',
    js_build_path: "build/js",

// Grunt Tasks
    concat: {
      options:{
        separator: ';'
      },
      js: {
        src: ['<%= js_src_path %>/*.js'],
        dest: '<%= js_build_path %>/app.js'
      }    },
    uglify: {
      options: {
        banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
      },
      js: {
        src: '<%= concat.js.dest %>',
        dest:'<%= js_build_path %>/app.min.js'
      }
    }
    }
  );

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

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

但我有这样的信息:

Running "concat:js" (concat) task
File "build/js/app.js" created.

Running "uglify:build" (uglify) task
>> Uglifying source "build/js/app.js" failed.
Warning: Uglification failed. Use --force to continue.

Aborted due to warnings.

我的配置有什么问题吗?

由于

2 个答案:

答案 0 :(得分:0)

我认为你现在可能已经开始了,但如果JavaScript出现问题,uglify可能会失败。它不像JSHint那么严格,但如果你只是有不好的JS,那么uglify就会出现问题。

这也可能是因为脚本的顺序错误(即尝试在jQuery之前加载jQuery插件,也许?)。

答案 1 :(得分:0)

这里的问题是grunt-contrib-uglify在压缩“无结肠”或“紧凑”javascript时会返回此错误。

这是合法的javascript,但它甚至不会(对我而言)像同一种语言!请参阅此错误报告https://github.com/gruntjs/grunt-contrib-uglify/issues/29顶部的简短示例。

有关此“紧凑风格”的更多信息,请参阅: http://blog.izs.me/post/2353458699/an-open-letter-to-javascript-leaders-regarding

似乎grunt-contrib-uglify应该能够处理任何有效的javascript - 但事实并非如此。