2014-10-01 48 views
7

我有一個特別的JSHint /咕嚕設置中,我想完成以下任務:從單一.jshintrc文件如何強制JSHint在繁重的運行總是使用--verbose標誌

  1. 負載允許我的IDE linter拿起我的設置
  2. 能夠在其他grunt任務中覆蓋.jshintrc的單個選項
  3. 讓JSHint始終以詳細模式運行,以便始終可以看到警告數字,而無需與--verbose
運行所有的咕嚕

以下允許我從.jshintrc加載並始終以詳細方式運行,但不允許選項覆蓋。該文檔提到,這應該是這樣,但不說的詳細選項,它的工作原理什麼:

jshint: { 
    options:{ 
     jshintrc: '.jshintrc', 
     verbose: true, 
    }, 
    source: { 
     options: { 
      ignores: ['src/**/*.test.js'], 
     }, 
     files:{ 
      src:['src/**/*.js'] 
     } 
    }, 
    tests: { 
     options: { 
      unused: false 
     }, 
     files: { 
      src: ['src/**/*.test.js'] 
     } 
    } 
} 

要解決的覆蓋侷限,它是非常容易的只是咕嚕注入的內容.jshintrc文件放入配置中,但無論出於何種原因,這會導致linter現在拋出「line 0 col 0 Bad option:'verbose'。(E001)」錯誤(如果我刪除options.verbose = true,行,但沒有詳細標誌):

jshint: { 
    options:(function() { 
     var options = grunt.file.readJSON('.jshintrc'); 
     options.verbose = true; 
     return options; 
    }()), 
    source: { 
     options: { 
      ignores: ['src/**/*.test.js'], 
     }, 
     files:{ 
      src:['src/**/*.js'] 
     } 
    }, 
    tests: { 
     options: (function() { 
      var options = grunt.file.readJSON('.jshintrc'); 
      options.unused = false; 
      return options; 
     }()), 
     files: { 
      src: ['src/**/*.test.js'] 
     } 
    } 
} 

因此,考慮到我的三個標準,有沒有配置咕嚕以這種方式運行呢?

+2

爲尋找一個答案,我把它作爲申請在https://github.com/gruntjs/grunt-contrib-jshint/issues/178錯誤 - 細節可在那裏發現,如果情況發生變化,我會更新這個問題。 – MaxPRafferty 2014-10-27 15:43:14

+0

有關於此的任何更新,特別是如何獲得詳細模式?檢查鏈接,但它已關閉。 – arcseldon 2015-08-30 22:53:59

+0

grunt contrib jshint似乎相信他們不負責參數,他們發送到咕嚕,不會解決(因此封閉的問題。)。因爲我已經搬到eslint擁有所有我需要的選項:https://www.npmjs.com/package/grunt-eslint – MaxPRafferty 2015-08-31 17:52:54

回答

0

如何在特定的文件中使用咕嚕-的contrib-jshint運行jshint:

./node_modules/grunt-contrib-jshint/node_modules/jshint/bin/jshint --verbose app/sources/modules/dashboard/views/dashboard-performance/dashboard-performance-ctrl.js 

沒有辦法定義在選項咕嚕jshint詳細模式。並且它將不會被解決,直到grunt更新。 (感謝MaxPRafferty)

+0

感謝您的回答Oleksander,但實際上咕嚕允許「詳細」標誌被傳入選項。這就是options屬性的目的,通過config傳遞命令行選項,這就是我的第一個例子工作的原因。 – MaxPRafferty 2016-03-03 15:06:21

+0

問題在於grunt-contrib-jshint,他忽略了options屬性被保留用於此目的並使用它在節點環境中配置工具,但不要忽略它們自己沒有使用的屬性。這會導致linter在有效的命令行標誌上拋出錯誤,因此'錯誤選項:'verbose'。 (E001)',儘管事實上verbose標誌在運行時正確地附加到jsHint命令(具有諷刺意味的是,「錯誤選項」錯誤以冗長模式顯示!) – MaxPRafferty 2016-03-03 15:14:30

相關問題