<commit_before>module.exports = function(grunt) {
  grunt.loadNpmTasks('grunt-mocha-test');
  grunt.loadNpmTasks('grunt-contrib-clean');
  grunt.loadNpmTasks('grunt-contrib-copy');
  grunt.loadNpmTasks('grunt-contrib-jshint');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-blanket');
  grunt.loadNpmTasks('grunt-jscs');

  grunt.initConfig({
    jshint: {
      files: ['Gruntfile.js','lib/**/*.js','test/**/*.js'],
      options: {
        jshintrc: '.jshintrc',
      },
    },
    jscs: {
      src: '<%= jshint.files %>',
      options: {
        config: '.jscsrc',
      },
    },
    clean: {
      coverage: {
        src: ['coverage/'],
      },
    },
    copy: {
      coverage: {
        src: ['test/**/*.js'],
        dest: 'coverage/',
      },
    },
    blanket: {
      coverage: {
        src: ['lib/'],
        dest: 'coverage/lib/',
      },
    },
    mochaTest: {
      test: {
        options: {
          reporter: 'spec',
          clearRequireCache: true,
        },
        src: ['coverage/test/**/*.js'],
      },
      coverage: {
        options: {
          reporter: 'html-cov',
          quiet: true,
          captureFile: 'coverage.html',
        },
        src: ['coverage/test/**/*.js'],
      },
    },
  });

  grunt.registerTask('default',
                     ['jshint','jscs','clean', 'blanket', 'copy', 'mochaTest']);
};<commit_msg>增加了watch任务。<commit_after>module.exports = function(grunt) {
  grunt.loadNpmTasks('grunt-mocha-test');
  grunt.loadNpmTasks('grunt-contrib-clean');
  grunt.loadNpmTasks('grunt-contrib-copy');
  grunt.loadNpmTasks('grunt-contrib-jshint');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-blanket');
  grunt.loadNpmTasks('grunt-jscs');

  grunt.initConfig({
    jshint: {
      files: ['Gruntfile.js','lib/**/*.js','test/**/*.js'],
      options: {
        jshintrc: '.jshintrc',
      },
    },
    watch: {
      scripts: {
        files: '<%= jshint.files %>',
        tasks: ['jshint','jscs'],
        options: {
          spawn: false,
        },
      },
    },
    jscs: {
      src: '<%= jshint.files %>',
      options: {
        config: '.jscsrc',
      },
    },
    clean: {
      coverage: {
        src: ['coverage/'],
      },
    },
    copy: {
      coverage: {
        src: ['test/**/*.js'],
        dest: 'coverage/',
      },
    },
    blanket: {
      coverage: {
        src: ['lib/'],
        dest: 'coverage/lib/',
      },
    },
    mochaTest: {
      test: {
        options: {
          reporter: 'spec',
          clearRequireCache: true,
        },
        src: ['coverage/test/**/*.js'],
      },
      coverage: {
        options: {
          reporter: 'html-cov',
          quiet: true,
          captureFile: 'coverage.html',
        },
        src: ['coverage/test/**/*.js'],
      },
    },
  });

  grunt.registerTask(
    'default',
    ['jshint','jscs','clean', 'blanket', 'copy', 'mochaTest']);
};
{'fraction_non_alphanumeric': 0.20202702702702702, 'fraction_numerical': 0.0, 'mean_word_length': 1.8334928229665073, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 6, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6736735', 'n_tokens_mistral': 1054, 'n_tokens_neox': 1058, 'n_words': 134}