ignores
is a jshint option and expects specific files. It's better to use the idiomatic Grunt negate !
to exclude files:
jshint: {
options: {
smarttabs: true
},
all: [
'Gruntfile.js',
'public/js/**/*.js',
'!public/js/libs/**/*.js'
],
},