1

我正在使用“ grunt-closure-tools ”。

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

错误:命令失败:build\lib\angular.js:9040 警告 - 在旧版本的 JavaScript 中,关键字和保留字不允许作为不带引号的属性名称。如果您的目标是较新版本的 JavaScript,请设置适当的 language_in 选项。

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

build\lib\angular.js:258: 错误 - 解析错误。标识符是保留字 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']);
};

谢谢你的帮助。

4

1 回答 1

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']);
};
于 2014-07-23T04:29:55.133 回答