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