5

grunt-contrib-watch を使用して、変更されたファイルに対してのみ ESLint を実行できないようです。

JSHintでできました。

ESLintに同じことをさせるための助けをいただければ幸いです。

4

1 に答える 1

2

先日、なんとか設定できたので、考えられる解決策を投稿します。

構成オブジェクトを動的に変更する (タスク間でデータを共有する) ために使用grunt.configまたはテンプレートを使用しようとしているかどうかに関係なく、問題は、デフォルトで、トリガーされたタスクの子プロセスを生成し、eslint を別のコンテキストで実行することです。 .<%= ... %>watch

これを回避するには、設定中に options フラグを使用してください。spawn:falsewatch

基本的に、タスクを次のように構成します。

watch: {
  scripts: {
    files: ['**/*.js'],
    tasks: ['eslint'],
    options: {
      spawn: false, // !!!
    },
  },
},
eslint: {
  target: '<%= changedFiles %>'
}

次に、イベント ハンドラーをウォッチ イベントにアタッチし、次のように設定しますchangedFiles

grunt.event.on('watch', function(action, filepath){
  grunt.config('changedFiles', filepath);
}

イベント ハンドラーで直接変更することもできeslint.targetますが、変更されたファイルを保持する属性を持つことで、それらを使用する可能性のある任意の数のタスクで使用できるようになります。

于 2016-03-31T08:57:57.150 に答える