2013-08-08 28 views
7
(jshint görev için burada açıklandığı gibi: https://github.com/gruntjs/grunt-contrib-watch#compiling-files-as-needed) Ben gerektiği gibi sadece küçültmek dosya için benim çirkinleştirmek görevin yapılandırmasını değiştirmek gerekir

dinamik

modifikasyon jshint görev için iyi çalışıyor ama değil çirkinleştirmek için, ben

Herhangi bir yardım mutluluk duyacağız ... sorun mülkiyet yolu olduğunu düşünüyorum;) İşte

benim Gruntfile.js geçerli:

module.exports = function (grunt) { 
    grunt.initConfig({ 

     // define source files and their destinations 
     jshint: { 
      all: ['dev/**/*.js'], 
     }, 
     uglify: { 
      dynamic_mappings: { 
       // Grunt will search for "**/*.js" under "dev/" when the "minify" task 
       // runs and build the appropriate src-dest file mappings then, so you 
       // don't need to update the Gruntfile when files are added or removed. 
      files: [{ 
        expand: true,  // Enable dynamic expansion. 
        cwd: 'dev/',  // Src matches are relative to this path. 
        src: ['**/*.js'], // Actual pattern(s) to match. 
        dest: 'build', // Destination path prefix. 
        ext: '.min.js', // Dest filepaths will have this extension. 
       }, 
       ], 
      } 
     } 
     watch: { 
     options: { spawn: false }, 
      js: { files: 'dev/**/*.js', tasks: [ 'uglify' ] }, 
     } 
    }); 

    // load plugins 
    grunt.loadNpmTasks('grunt-contrib-watch'); 
    grunt.loadNpmTasks('grunt-contrib-uglify'); 
    grunt.loadNpmTasks('grunt-contrib-jshint'); 

    // default task 
    grunt.registerTask('default', [ 'watch' ]); 

    grunt.event.on('watch', function(action, filepath) { 
     grunt.config(['jshint', 'all'], filepath); 
     grunt.config('uglify.dynamic_mappings.files', [{src: filepath }]); 
    }); 

}; 
+1

Bunu denemedim, ancak dosyalar config ifadesinin dosya yapılandırmanızı tamamen değiştirmesi olasıdır. Uglify yapılandırmasını değiştirdiğinizde tüm öznitelikler (expand, cwd, etc…) sağlamayı denediniz mi? – dc5

+0

Bu çözümdü! Çok teşekkürler. – Fab

cevap

8

hat

grunt.config('uglify.dynamic_mappings.files', [{src: filepath }]); 

tamamen yeni src ile birlikte başka orijinal parametreler dahil Yerine

uglify.dynamic_mappings.files

için orijinal konfigürasyonunu değiştirmeyi deneyin mı: filepath

0

zaten küçültmek değil nasıl

uglify:  { 
     onlyScripts: { 
     files: [{ 
      dest: '<%= yeoman.dist %>/scripts/scripts.js', 
      src: ['.tmp/concat/scripts/scripts.js'] 
     }] 
     } 
    } 

Ayrıca yeoman her "homurtu yapı" konulu minified, şimdi yer vendor.js kopyalamayız çirkinleştirmek Geçici klasör, bu yüzden "vendorJS" bölüm ekle "kopya" Göreve: görev "inşa" in

copy: 
     //... 
     vendorJS: { 
     expand: true, 
     cwd: '.tmp/concat/scripts/', 
     dest: '<%= yeoman.dist %>/scripts/', 
     src: 'vendor.js' 
     } 

Ardından, 'onlyScripts' olarak çirkinleştirmek set hedef ve kopya vendor.js:

grunt.registerTask('build', [ 
    'jshint', 
    'clean:dist', 
    //'wiredep', 
    // ... 
    'useminPrepare', 
    //'concurrent:dist', 
    'autoprefixer', 
    'concat', 
    'ngAnnotate', 
    'copy:dist', 
    'cssmin', 
    'uglify:onlyScripts', 
    'copy:vendorJS', 
    // ... 
    ]); 

http://eugenioz.blogspot.in/2014/08/how-to-not-minify-already-minified-on.html