For multiple tasks changing:
'all' : {...}
to
'files': { src: [...] }
should fix it. It would seem that 'all' is a shorthand for a single task, with multiple tasks, jshint will be looking for files in files->src ie:
backend: {
options: {
jshintrc: '.jshintrc'
},
'files': {
'src': [
'Gruntfile.js',
'server.js',
'*.js',
'backend/{,*/}*.js'
]
}
},
test: {
options: {
jshintrc: 'test.jshintrc'
},
'files': {
'src': [
'test/{,*/}*.js'
]
}
}