0

У меня довольно простая настройка с sass, watch и uglify, но по какой-то причине я не могу наблюдать за обнаружением при сохранении js-файла. Он отлично работает для SCSS/CSS (компилирует и перезагружает.) Если я запустил «grunt uglify», он связывает мои JS-файлы, а если часы работают (в другом экземпляре консоли), это обнаружит и перезапустит перезагрузку.Uglify не работает с Grunt 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

смотрите на часы конфигурации:

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

Вы смотрите только для одного JS файлов изменений, называемых site.js. Для просмотра всех источников используйте эту конфигурацию:

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

Используйте тот же шаблон, что и в конфигурации uglify. Я предположил, что вы не собираетесь изменять jquery.

+0

Да, это было полностью. Вау. Как мозг переходит в состояние, когда он просто не может пройти мимо чего-либо независимо от того, насколько простым является решение? В моей голове это должно было работать так, как я это делал, потому что я генерирую один JS-файл, и я просто смотрю _it_ для изменений. Похоже, что работает CSS. Это просмотр этого файла и запуск 'uglify', который должен запускать задачу uglify и связывать мои js-файлы. Теперь я вижу, что это не так, как это работает. Это все еще немного запутанно, но, по крайней мере, я знаю, как это можно создать *. ;) I _really_ надеюсь, что это поможет кому-то еще! – sinrise

+1

@sinrise вы очень желанны. –