grunt-closure-tools: ERROR - Ошибка разбора. идентификатор является зарезервированным словом
Я использую " grunt-closure-tools ".
Когда я пытаюсь минимизировать простой файл JS, все работает хорошо. Но когда я пытаюсь минимизировать библиотеку AngularJS или Bootstrap, я получаю следующее исключение:
Ошибка: команда не выполнена: build\lib\angular.js:9040 ПРЕДУПРЕЖДЕНИЕ. Ключевые слова и зарезервированные слова не допускаются в качестве имен свойств без кавычек в старых версиях JavaScript. Если вы ориентируетесь на более новые версии JavaScript, установите соответствующий параметр language_intion.
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']);
};
Спасибо за любую помощь.
1 ответ
Решение использует (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']);
};