Jshint gruntモジュールを使用してコードを検証しようとしていますが、常に次のエラーが発生します。
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を使用しても、エラーに対して機能するものが何も表示されないことです。「パスは文字列である必要があります」だけです。ファイルをJSLintで検証し(角かっこを使用)、非常にうまく機能します。また、正常に動作します。
私がこれまでにしたこと。
Grunt-contrib-jshintを「0.10.0」から「0.12.0」に更新することでこの問題を修正しました。
node
をv6.4.0
に更新した後も、まだエラーが発生していました。
私を助けたのは githubに関するこのコメント (Jeff Peckによる):
ReporterOutputオプションがnullに設定されている場合に問題が発生することがわかりました。空の文字列を参照するようにそのオプションを変更すると、jshintは期待どおりに機能します。
options: { jshintrc: '<%= baseDir %>/.jshintrc', reporterOutput: "", ...
そうすることで、grunt jshint
が完了しました。
編集:
さて、私はnode
を更新しましたが、 Zeid Selimovicの回答 に従って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