grunt-contrib-jshint警告:path必须是string;

我一直在试图使用jshint grunt模块来validation我的代码,但我总是得到以下错误:

Running "jshint" task [D] Task source: C:\Coursera\03. Intro Angular JS\conFusion\node_modules\grunt-contrib-jshint\tasks\jshint.js Running "jshint:all" (jshint) task [D] Task source: C:\Coursera\03. Intro Angular JS\conFusion\node_modules\grunt-contrib-jshint\tasks\jshint.js Verifying property jshint.all exists in config...OK Files: Gruntfile.js, app/scripts/app.js Options: force=false, reporterOutput=null, jshintrc=".jshintrc", reporter={} Warning: Path must be a string. Received { toString: [Function], reporter: [Function] } Use --force to continue. 

问题是即使使用–verbose和-debug,它不显示任何工作的错误,只是“path必须是一个string”,我用JSLint(使用括号)validation文件,它工作得很好,网站也工作正常。

到目前为止,我做了什么。

  • unistalled node.js和节点模块3次(每次尝试不同的东西)。
  • 试图限制我的咕task任务,只是validation一个非常简单的js文件,也没有工作,这意味着那不涉及代码或我gruntfile.js。

我通过将grunt-contrib-jshint从“0.10.0”更新为“0.12.0”来解决这个问题。

node更新到v6.4.0后,我仍然收到错误。

什么帮助我在github上发表这个评论 (杰夫·派克(Jeff Peck)):

当记者输出选项设置为空时,我发现问题是。 如果您更改该选项以引用空string,则jshint将按预期工作:

 options: { jshintrc: '<%= baseDir %>/.jshintrc', reporterOutput: "", ... 

这样做可以让grunt jshint完成。

编辑:

那么,根据Zeid Selimovic的回答 ,我确实已经更新了node ,但不是grunt-contrib-jshint 。 这工作,比以前的解决方法更好

我刚刚在节点(v6.9.2)的更新之后得到了这个问题。 通过以下步骤将grunt-contrib-jshint更新到最新版本(“1.1.0”)后得到解决:

npm卸载grunt-contrib-jshint –save-dev

npm install grunt-contrib-jshint –save-dev