编程语言
首页 > 编程语言> > javascript-Grunt-连接多个JS文件并注意更改

javascript-Grunt-连接多个JS文件并注意更改

作者:互联网

Grunt还是一个新手,因此请记住您的答案.我正在尝试在Grunt中设置任务,以将名为“ custom”的目录中的所有JS文件合并为一个名为custom-concat.js的文件,但是运行grunt watch(运行正常且没有错误)后,什么都没有发生当我尝试对“ custom”目录中的任何文件进行更改时(即,即使我对“ custom”目录中的任何JS文件进行了更改,控制台也位于“ waiting ….”).显然,我的concat任务有问题,但是我似乎看不出问题所在.谁能看到问题所在?完整的gruntfile如下:

module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
    //pkg: grunt.file.readJSON('package.json'),

    concat: {
      options: {
        separator: ';',
      },
      dist: {
        src: ['scripts/custom/**/*.js'],
        dest: 'scripts/custom-concat.js',
      },
    },

    uglify: {
      build: {
        src: 'scripts/custom-concat.js',
        dest: 'scripts/custom.min.js'
      }
    },

    less: {
      options: {
        paths: ["css"]
      },
      files: {
        "styles.css": "less/styles.less"
      }
    },

    watch: {
      scripts: {
          files: 'scripts/**/*.js',
          task: ['concat', 'uglify:build']
      },

      styles: {
          files: 'css/less/**.less',
          task: 'less'
      }
    }

  });

  grunt.loadNpmTasks('grunt-contrib-concat');
  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-watch');

  // Default task(s).
  grunt.registerTask('default', ['concat', 'uglify']);

};

解决方法:

据我所知,您的监视任务存在三个小问题:

>监视的正确属性是taskS而不是task
>如果要直接运行监视任务,请使用选项{atBegin:true}
>您的监视任务将监视脚本文件夹.但是,此文件夹还将包含您的简明文件和丑化文件.因此,此任务将陷入无限循环.您可能只应该看一下scripts / custom文件夹

因此,您的监视任务应该看起来像这样:

watch: {
  scripts: {
      files: 'scripts/custom/**/*.js',
      tasks: ['concat', 'uglify:build'],
      options: {
          atBegin: true
      }
  },

  styles: ...
}

GitHub grunt-contrib-watch

标签:node-js,gruntjs,javascript
来源: https://codeday.me/bug/20191028/1955112.html