Uglify不与Grunt Watch合作

时间:2016-10-14 22:12:30

标签: javascript gruntjs grunt-contrib-watch grunt-contrib-uglify

我有一个非常基本的设置,包括sass,watch和uglify,但由于某种原因,我无法看到检测js文件的保存时间。它适用于SCSS / CSS(编译和重新加载)。如果我运行'grunt uglify'它会捆绑我的JS文件,如果watch正在运行(在另一个控制台实例中),它将检测它并触发重新加载。

我已经尝试了很多组合,我觉得这是非常愚蠢的我正在做/不做但我只是没有看到它。

我的gruntfile.js:

module.exports = function(grunt) {
  grunt.registerTask('default', ['sass', 'uglify']);
  grunt.initConfig({
    sass: {
      dist: {
        options: {
          style: 'expanded'
        },
        files: { 'fivesixtwo.com/src/FiveSixTwo.com/wwwroot/css/main.css': 'fivesixtwo.com/src/FiveSixTwo.com/wwwroot/css/main.scss' }
      }
    },
    uglify: {
      my_target: {
        files: {
          'fivesixtwo.com/src/FiveSixTwo.com/wwwroot/js/site.js': [
            'fivesixtwo.com/src/FiveSixTwo.com/wwwroot/lib/jquery/dist/jquery.js',
            'fivesixtwo.com/src/FiveSixTwo.com/wwwroot/lib/*.js'
          ]
        }
      }
    },
    watch: {
      options: {
        livereload: 35729,
      },
      html: {
        files: ['fivesixtwo.com/src/FiveSixTwo.com/Views/*.cshtml'],
      },
      sass: {
        options: {
          livereload: false
        },
        files: ['fivesixtwo.com/src/FiveSixTwo.com/wwwroot/css/*.scss'],
        tasks: ['sass']
      },
      css: {
        files: ['fivesixtwo.com/src/FiveSixTwo.com/wwwroot/css/main.css'],
        tasks: []
      },
      scripts: {
        files: ['fivesixtwo.com/src/FiveSixTwo.com/wwwroot/js/site.js'],
        tasks: ['uglify']
      }
    }
  });

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

};

1 个答案:

答案 0 :(得分:1)

看看你的手表配置:

scripts: {
    files: ['fivesixtwo.com/src/FiveSixTwo.com/wwwroot/js/site.js'],
    tasks: ['uglify']
}

您只关注名为site.js的单个js文件更改。要观看所有来源,请使用此配置:

scripts: {
    files: ['fivesixtwo.com/src/FiveSixTwo.com/wwwroot/lib/*.js'],
    tasks: ['uglify']
}

使用与uglify配置中相同的模式。我假设你不打算修改jquery本身。