Я охотился здесь и довольно длинный поиск в Google, и не вижу ничего очевидного, хотя я предупреждаю, что с этим я впервые работал с jshint/uglify и grunt ,grunt: jshint после uglify генерации предупреждений
У меня есть (ради краткости) 2 тест JS файлы:
(function() {
console.log("I'm in your build, testing your stuff (1)");
})();
и
(function() {
console.log("I'm in your build, testing your stuff (2)");
})();
мой пехотинец файл делает ряд задач сборки, но в основном я бегу jshint дважды - один раз на src (если раньше возникли проблемы с остановкой), и один раз после всех concat/uglify, чтобы гарантировать, что окончательные выходные файлы все равно пройдут.
jshint на источнике (выше) работает с обработкой, но jshint post 'build', похоже, терпит неудачу, поскольку uglify удалил пару точек с запятой.
уместные части моего файла хрюкать (для исх):
jshint: {
jshintrc: '.jshintrc',
source: {
files: {
src: ['app/common/scripts/**/*.js',
'app/games/**/*.js'
]
}
},
dist: {
files: {
src: [ 'dist/' + targetEnvironment + '/common/scripts/**/*.js',
'dist/' + targetEnvironment + '/games/**/*.js'
]
}
}
},
concat: {
scriptsCommon: {
src: [ 'app/common/scripts/*.js',
],
dest: 'dist/' + targetEnvironment + '/common/scripts/common.concat.js',
nonull: true
}
},
uglify: {
all: {
files: [
{ src: 'dist/' + targetEnvironment + '/common/scripts/common.concat.js',
dest: 'dist/' + targetEnvironment + '/common/scripts/common.min.js' },
]
}
}
и моя хрюкать задача, которая проходит по существу (опять же, вырублены для примера):
grunt.registerTask('default', [
'jshint:source',
'concat:scriptsCommon',
'uglify:all',
'jshint:dist'
jshint:source
работы a treat, jshint:dist
не жалуется на недостающие точки с запятой.
uglify'd скрипт (для справки) является:
!function(){"use strict";angular.module("TestingStuffs",[]).controller("TestController",["$http","$log",function(){}]).controller("Test2Controller",["$http","$log",function(){}])}(),function(){console.log("I'm in your build, testing your stuff (1)")}(),function(){console.log("I'm in your build, testing your stuff (2)")}();
, как вы можете видеть, как console.log заявления были их точкой с запятой вынимается - безопасно, кажется. Я могу понять, почему uglify это сделал, и я также могу понять, почему jshint жалуется на это.
В идеале, я хотел бы изменить uglify так, чтобы он оставил точку с запятой (хотя я мог заработать ire из полиции с запятой за это), хотя в идеале мне бы хотелось увидеть варианты для обоих - получение jshint для игнорирования вопрос о выпуске с запятой, но также получение угасания, чтобы оставить его.
Любая помощь с благодарностью оценили!
Приветствия, Терри