我在這裏搜索了一個相當長的谷歌搜索,並且看不到任何明顯的東西,但我告誡說,這是我第一次使用jshint/uglify和grunt 。grunt:uglify發出警告後的jshint
我(爲簡潔起見)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已經刪除了幾個分號。
我咕嚕文件(REF)的相關部分:
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
作品一種享受,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,使其留下分號(雖然我可能會從分號警察那裏獲得憤怒),儘管理想情況下我很想看到兩個選項 - 讓jshint忽略分號問題,但也得到uglify離開它。
任何幫助感激地讚賞!
乾杯, 特里