I'm getting this error when I try to compile with Grunt. I haven't used it much before but I seem to only be getting this error with this project and it works fine for other projects on my server.
Running "jshint:main" (jshint) task Warning: Path must be a string. Received null Use --force to continue.
Aborted due to warnings.
Grunt file
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
uglify: {
options: {
mangle: false
},
target: {
files: {
'script/dist/main.min.js': 'script/dist/main.js'
}
},
build: {
files: {
'script/dist/build.min.js': 'script/dist/build.min.js'
}
}
},
concat: {
options: {
stripBanners: true,
banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
'<%= grunt.template.today("yyyy-mm-dd") %> */',
},
srcJS: {
src: ['script/src/menu.js',
'script/src/custom_plugins.js',
'script/src/banner.js',
'script/src/latestNews.js',
'script/src/officers.js',
'script/src/eventsCalendar.js',
'script/src/combinedSocialMedia.js',
'script/src/haveYourSay.js',
'script/src/photoGallery.js',
'script/src/countdown.js'
],
dest: 'script/dist/main.js'
},
css: {
src: ['style/libs/bootstrap.min.css',
'style/libs/bootstrap-theme.min.css',
'style/src/css/*'
],
dest: 'style/dist/build.min.css'
},
build: {
src: ['script/libs/jquery.easing.min.js',
'script/dist/main.js',
'script/libs/bootstrap.min.js',
'script/libs/velocity.min.js',
'script/libs/date.js',
'script/libs/jquery.timeago.js',
'script/libs/owl.carousel.min.js'
],
dest: 'script/dist/build.min.js'
}
},
jshint: {
main: 'script/dist/main.js'
},
watch: {
js: {
files: 'script/src/*',
tasks: ['concat:srcJS', 'uglify:target', 'jshint:main', 'copy:js']
},
css: {
files: 'style/src/css/*',
tasks: ['copy:css']
},
less: {
files: 'style/src/less/*',
tasks: ['less', 'copy:css']
},
html: {
files: '*.html',
tasks: ['validation', 'bootlint']
}
},
clean: {
js: [
'script/dist/main.min.js',
'dist/build.min.js',
'dist/build.min.css'
]
},
copy: {
css: {
files: [
{
expand: true,
'src': 'style/src/css/main.css',
'dest': 'style/dist/',
flatten: true,
rename: function(dest, src) {
return dest + src.replace('main', 'build.min');
}
},
{
expand: true,
'src': 'style/dist/build.min.css',
'dest': 'dist/',
flatten: true
},
]
},
js: {
files: [{
expand: true,
'src': 'script/dist/build.min.js',
'dest': 'dist/',
flatten: true
}]
}
},
validation: {
options: {
reset: grunt.option('reset') || false,
stoponerror: true,
relaxerror: ['Bad value X-UA-Compatible for attribute http-equiv on element meta.'] //ignores these errors
},
files: {
src: ['homepage.html']
}
},
bootlint: {
options: {
stoponerror: false,
relaxerror: ['E001', 'E003', 'E031', 'W001', 'W002', 'W003', 'W005', 'W007', 'W009', 'E013']
},
files: ['homepage.html'],
},
less: {
build: {
options: {
paths: ["style/src/less"],
cleancss: true,
compress: true
},
files: {
"style/src/css/main.css": "style/src/less/main.less"
}
}
}
});
// Load the plugin that provides the "uglify" task.
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-html-validation');
grunt.loadNpmTasks('grunt-bootlint');
// Default task(s).
//grunt.registerTask('default', ['concat:srcJS','concat:css','uglify','jshint:main']);
grunt.registerTask('default', [
'validation',
'bootlint',
'concat:srcJS',
'jshint:main',
'uglify:target',
'clean',
'concat:build',
'uglify:build',
'less',
'copy'
]);
};
The reporterOutput
must be a string. When omitted it is taken as a null
.
Provide an empty string for it in your Gruntfile.js
jshint: {
main: 'script/dist/main.js',
reporterOutput: '' // <-- Add an empty String here
}
If you are using any generators give like this
jshint: {
main: {
options: {
jshintrc: '.jshintrc',
reporterOutput: "" // Empty string inside options
},
src: createFolderGlobs('*.js')
}
}
For me, it was adding reporterOutput
with an empty string value in the Gruntfile.js
within the config object like:
{
jshint: {
options: {
jshintrc: ".jshintrc",
reporterOutput: ''
}
}
}
that fixed it.
This error is related to the version of jshint
library. To solve, change current jshint version for the latest
$ npm install grunt-contrib-jshint@latest --save-dev
Anyhow, change the jshint
version in your package.json
file manually to 1.1.0. Do not forget to update the project with statement below:
npm install
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With