2

Concurrent を使用して Nodemon と Watch/Livereload の両方を実行する Grunt タスクを実行しています。デフォルトのロードでは、Concurrent をリントして起動します。また、変更時に個々のファイルをリントするウォッチを設定したいと思います。現在、1 つのファイルが変更されると、すべてのファイルがリントされます。

私は StackOverflow で同様の質問を調べ、潜在的な解決策として grunt-newer を使用することにしました。ただし、以下の私の実装では、「新しい」プレフィックスは何もしていないようです。変更されたファイルのみがリントされるようにするにはどうすればよいですか?

module.exports = function(grunt) {
  //load all dependencies
  require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);

  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    concurrent: {
      dev: {
        options: {
          logConcurrentOutput: true
        },
        tasks: ['watch', 'nodemon']
      }
    },
    jshint: {
      files: ['Gruntfile.js', 'client/src/*.js', 'server/**/*.js'],
      options: {
        '-W030': true,
        '-W083': true,
        globals: {
          console: true,
          module: true,
          document: true
        }
      }
    },
    watch: {
      all: {
        files: ['<%= jshint.files %>'],
        tasks: ['newer:jshint']
      },
      frontend: {
        files: ['client/**/*.{css,js,html}'],
        options: {
          livereload: true
        }
      }
    },
    nodemon: {
      dev: {
        options: {
          file: 'server/server.js',
          watchedFolders: ['server']
        }
      }
    }
  });

  grunt.registerTask('test', ['jshint']);
  grunt.registerTask('default', ['jshint', 'concurrent']);

};
4

1 に答える 1