title: Grunt executes multiple times, creates infinite loop
body: <p>We are working as on a project with a couple of other devs on GIT, using the same repo, it works fine with everyone else. However, when I run grunt it executes multiple times, seems to be running into an infinite loop, without me actually making any changes. It's only happening to me on a different computer
  I am considering that maybe I need something else installed.
  I deleted node, npm and reinstalled with homebrew which I'm also using for updates. Node v5.3.0, npm  3.3.12
  Running Mavericks.</p>
  
  <p>What am I missing?</p>
  
  <p>Here's the loop:</p>
  
  <pre><code>    Reloading watch config...
  
  Running "watch" task
  Waiting...
  &gt;&gt; File "Gruntfile.js" changed.
  &gt;&gt; File "js/all-js/bootstrap-hover-dropdown.min.js" changed.
  &gt;&gt; File "js/all-js/site.js" changed.
  Running "uglify:build" (uglify) task
  &gt;&gt; 1 file created.
  
  Done, without errors.
  Completed in 3.740s at Tue Jan 05 2016 13:11:07 GMT-0500 (ECT) - Waiting...
  [BS] File changed: js/site.min.js
  
  Reloading watch config...
  
  Running "watch" task
  Waiting...
  &gt;&gt; File "js/all-js/bootstrap.js" changed.
  &gt;&gt; File "Gruntfile.js" changed.
  Running "uglify:build" (uglify) task
  &gt;&gt; 1 file created.
  
  Done, without errors.
  Completed in 1.869s at Tue Jan 05 2016 13:11:10 GMT-0500 (ECT) - Waiting...
  [BS] File changed: js/site.min.js
  &gt;&gt; File "js/all-js/bootstrap-hover-dropdown.min.js" changed.
  Running "uglify:build" (uglify) task
  &gt;&gt; 1 file created.
  
  Done, without errors.
  Completed in 1.885s at Tue Jan 05 2016 13:12:04 GMT-0500 (ECT) - Waiting...
  [BS] File changed: js/site.min.js
  
  Reloading watch config...
  
  Running "watch" task
  Waiting...
  &gt;&gt; File "Gruntfile.js" changed.
  </code></pre>
  
  <p>Here's my Gruntfile.js:</p>
  
  <pre><code>    module.exports = function(grunt) {
  
  //Get all tasks from the package.json file
  require("matchdep").filterDev("grunt-*").forEach(grunt.loadNpmTasks);
  
  grunt.initConfig({
      pkg: grunt.file.readJSON('package.json'),    
  
      /* Concurrent Task */          
  
      concurrent: {
          watch: {
              tasks: ['watch', 'compass:dist', 'browserSync'],
              options: {
                  logConcurrentOutput: true
              }
          }
      },
  
      /* SASS task */
  
       compass: {
          dist: {
              options: {
                sassDir: ['SASS/'],
                cssDir: ['css/'],
                environment: 'development', /* development | production */
                importPath: ['SASS/'],
                outputStyle: 'compressed', /* expanded for development | compressed for production */
                watch: true,
                sourcemap: true
              },
          },
          live: {
              options: {
                sassDir: ['SASS/'],
                cssDir: ['css/'],
                environment: 'production', /* development | production */
                importPath: ['SASS/'],
                outputStyle: 'compressed', /* expanded for development | compressed for production */
                watch: false,
                force: true,                      
              },
          },          
      },      
  
      /* Javascript Tasks */
  
      uglify: {
          // Uglify files
  
          build: {
              src: [
                  'js/all-js/bootstrap.js',
                  'js/all-js/site.js'
              ],
              dest: 'js/site.min.js'
          }
  
      },
  
      /* Run tasks when needed */
  
      watch: {            
          js: {
              files: ['js/all-js/*.js'],
              tasks: ['uglify'],
              options: { livereload: true }
          },
          gruntfile: {
              files: ['Gruntfile.js'],
              options: {reload: true}
          }
      },
  
      /* Browser Reload with BrowserSync */
  
      browserSync: {
          bsFiles: {
              src : [
                  'css/**/*.css',
                  'js/site.min.js',
                  '**/*.php'
              ]
          },
      }       
  
  
  });
  
  // Where we tell Grunt what to do when we type "grunt" into the terminal.
  
  grunt.registerTask('default', ['concurrent:watch']);
  grunt.registerTask('live', ['compass:live']);
  </code></pre>
  
  <p>};</p>
  
  <p>Here's my package.json file:</p>
  
  <pre><code>    {
        "name": "ourframework",
        "version": "0.1.0",
        "devDependencies": {
        "grunt": "~0.4.1",
        "grunt-contrib-compass": "*",
        "grunt-browser-sync": "*",
        "grunt-contrib-watch": "*",
        "grunt-concurrent": "*",
        "grunt-contrib-uglify": "*",      
        "matchdep": "*"
      }
     }
  </code></pre>