grunt-closure-tools:错误 - 解析错误。标识符是保留字

时间:2014-07-22 12:31:19

标签: javascript angularjs gruntjs grunt-plugins

我正在使用" grunt-closure-tools "。

当我尝试缩小简单的JS文件时,一切都运行良好。 但是当我尝试缩小 AngularJS 库或 Bootstrap 库时,我得到了下一个异常:

  

错误:命令失败:build \ lib \ angular.js:9040警告 - 关键字   旧版中不允许使用保留字作为不带引号的属性名称   JavaScript的版本。如果您要定位较新版本的   JavaScript,设置适当的language_in otion。

     

build \ lib \ angular.js:256:错误 - 解析错误。标识符是   保留字   * /

     

build \ lib \ angular.js:258:ERROR - 解析错误。标识符是   保留字if(isNaN(msie)){

     

...................

Gruntfile.js:

module.exports = function(grunt) {

    grunt.initConfig({

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

        closureCompiler:  {
            options: {
                compilerFile: 'lib/google-closure-tools/compiler.jar'
            },
            minify: {
                files: [
                    {
                        expand: true,
                        src: ['build/**/*.js', '!build/**/*.min.js'],
                        ext: '.min.js'
                    }
                ]
            }
        }

    });

    grunt.loadNpmTasks('grunt-closure-tools');

    grunt.registerTask('closure', ['closureCompiler']);
};

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

解决方案在缩小时使用(language_in:“ ECMASCRIPT5 ”)。

Gruntfile.js:

module.exports = function(grunt) {

    grunt.initConfig({

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

        closureCompiler:  {
            options: {
                compilerFile: 'lib/google-closure-tools/compiler.jar',
                compilerOpts: {
                    language_in: "ECMASCRIPT5"
                }
            },
            minify: {
                files: [
                    {
                        expand: true,
                        src: ['build/**/*.js', '!build/**/*.min.js'],
                        ext: '.min.js'
                    }
                ]
            }
        }

    });

    grunt.loadNpmTasks('grunt-closure-tools');

    grunt.registerTask('closure', ['closureCompiler']);
};