【问题标题】:Uglify not working with Grunt WatchUglify 不与 Grunt Watch 一起使用
【发布时间】:2016-10-14 22:12:29
【问题描述】:

我有一个非常基本的设置,包括 sass、watch 和 uglify,但由于某种原因,我无法通过 watch 检测何时保存 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');

};

【问题讨论】:

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


    【解决方案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 本身。

    【讨论】:

    • 是的,就是这样。哇。不管解决方案多么简单,大脑是如何进入到无法通过某些事情的状态的?在我看来,它应该按照我的方式工作,因为我正在生成一个 JS 文件,而我只是在观察 it 的变化。看来这就是 CSS 的工作方式。它正在查看该文件,并运行“uglify”,它应该运行 uglify 任务并捆绑我的 js 文件。现在我发现它不是这样工作的。它仍然有点令人困惑,但至少我知道它是如何supposed 设置的。 ;) 我真的希望这对其他人有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多