Gruntjs 咕噜声丑环

Gruntjs 咕噜声丑环,gruntjs,grunt-contrib-watch,grunt-contrib-uglify,Gruntjs,Grunt Contrib Watch,Grunt Contrib Uglify,我对Grunt还是比较陌生,所以也许有经验的人可以帮我解决这个问题。出于某种原因,每当我运行grunt watch时,丑陋的任务会被执行多次,因此我的scripts.min.js文件会被编译多次 这就是我的GrunFile.js当前的样子: 'use strict'; module.exports = function(grunt) { // Show elapsed time require('time-grunt')(grunt); // Comment out any unu

我对Grunt还是比较陌生,所以也许有经验的人可以帮我解决这个问题。出于某种原因,每当我运行
grunt watch
时,丑陋的任务会被执行多次,因此我的scripts.min.js文件会被编译多次

这就是我的GrunFile.js当前的样子:

'use strict';
module.exports = function(grunt) {
  // Show elapsed time
  require('time-grunt')(grunt);

  // Comment out any unused components
  var jsFiles = [
    //'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/affix.js',
    //'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/alert.js',
    //'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/button.js',
    //'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/carousel.js',
    'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/collapse.js',
    //'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/dropdown.js',
    //'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/modal.js',
    //'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/popover.js',
    //'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/scrollspy.js',
    //'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/tab.js',
    //'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/tooltip.js',
    'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/transition.js',
    'assets/js/*.js'
  ];

  // Configure tasks.
  grunt.initConfig({
    sass: {
      dist: {
        options: {
          style: 'compressed'
        },
        files: {
          'assets/css/main.min.css': 'assets/sass/app.scss',
          'assets/css/custom-login.min.css': 'assets/sass/_login.scss',
          'assets/css/magnific.min.css': 'assets/sass/plugins/magnific/magnific.scss'
        }
      }
    },
    uglify: {
      dist: {
        files: {
          'assets/js/scripts.min.js': [ jsFiles ]
        }
      }
    },
    watch: {
      sass: {
        files: [ 'assets/sass/*.scss' ],
        tasks: [ 'sass' ]
      },
      js: {
        files: [ jsFiles ],
        tasks: [ 'uglify' ]
      }
    }
  });

  // Load tasks.
  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-sass');

  // Register tasks.
  grunt.registerTask('default', [
    'watch',
    'sass',
    'uglify'
  ]);
};

有人知道为什么这个丑陋的任务要执行多次吗?

问题是你有所有的js文件要检查和缩小。主要问题是:

'assets/js/*.js'
你正在压缩所有的js文件,但你也在观看,所以当你丑化所有的js文件时,它们发生了变化,因此,观看任务再次执行并缩小……这就是无限循环

您应该更改GrunFile,例如删除assets文件夹的scripts.min.js,或者删除assets/js/*.js并手动添加所有js文件。我建议采用第二种方法

'use strict';
 module.exports = function(grunt) {
 // Show elapsed time
 require('time-grunt')(grunt);

 // Comment out any unused components
 var jsFiles = [
//'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/affix.js',
//'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/alert.js',
//'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/button.js',
//'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/carousel.js',
'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/collapse.js',
//'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/dropdown.js',
//'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/modal.js',
//'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/popover.js',
//'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/scrollspy.js',
//'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/tab.js',
//'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/tooltip.js',
'assets/vendor/bootstrap-sass-official/assets/javascripts/bootstrap/transition.js'
];

// Configure tasks.
grunt.initConfig({
sass: {
  dist: {
    options: {
      style: 'compressed'
    },
    files: {
      'assets/css/main.min.css': 'assets/sass/app.scss',
      'assets/css/custom-login.min.css': 'assets/sass/_login.scss',
      'assets/css/magnific.min.css': 'assets/sass/plugins/magnific/magnific.scss'
    }
  }
},
uglify: {
  dist: {
    files: {
      'assets/js/scripts.min.js': [ jsFiles ]
    }
  }
},
watch: {
  sass: {
    files: [ 'assets/sass/*.scss' ],
    tasks: [ 'sass' ]
  },
  js: {
    files: [ jsFiles ],
    tasks: [ 'uglify' ]
  }
}
});

// Load tasks.
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-sass');

// Register tasks.
grunt.registerTask('default', [
  'watch',
  'sass',
  'uglify'
]);
};
问候