2013-08-26 25 views
49

nềnLàm thế nào để bỏ qua các file grunt làm xấu đi

Tôi vừa mới bắt đầu sử dụng grunt như khoảng 30 phút trước. Vì vậy, chịu với tôi.

Nhưng tôi có một kịch bản khá đơn giản mà sẽ xem xét js của tôi và sau đó nén tất cả vào một tệp cho tôi.

"use strict"; 
module.exports = function (grunt) { 

    // load all grunt tasks 
    require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks); 

    grunt.initConfig({ 
     pkg: grunt.file.readJSON('package.json'), 
     uglify: { 
      options: { 
       beautify: true, 
       report: 'gzip' 
      }, 
      build: { 
       src: ['docroot/js/*.js', 'docroot/components/pages/*.js', 'docroot/components/plugins/*.js'], 
       dest: 'docroot/js/main.min.js' 
      } 
     }, 
     watch: { 
      options: { 
       dateFormat: function(time) { 
        grunt.log.writeln('The watch finished in ' + time + 'ms at' + (new Date()).toString()); 
        grunt.log.writeln('Waiting for more changes...'); 
       } 
      }, 
      js: { 
       files: '<%= uglify.build.src %>', 
       tasks: ['uglify'] 
      } 
     } 
    }); 

    grunt.registerTask('default', 'watch'); 

} 

Câu hỏi

main.min.js tôi là nhận được bao gồm trong biên dịch mỗi lần. Có nghĩa là min.js của tôi là nhận được 2x, 4x, 8x, 16x vv vv Cách tốt nhất xung quanh việc này là thêm một ngoại lệ và bỏ qua main.min.js?

Trả lời

112

Đối với cuối của mảng src, thêm

'!docroot/js/main.min.js' 

này sẽ loại trừ nó. Các ! biến nó thành một loại trừ.

http://gruntjs.com/api/grunt.file#grunt.file.expand

Paths phù hợp với mô hình bắt đầu với! sẽ bị loại trừ khỏi mảng được trả về. Các mẫu được xử lý theo thứ tự, do đó, thứ tự bao gồm và loại trừ là đáng kể.

Điều này không cụ thể cho việc làm xấu, nhưng mọi tác vụ sử dụng quy ước grunt để chỉ định tệp sẽ hoạt động theo cách này.

Là một lời khuyên chung mặc dù tôi khuyên bạn nên đặt các tệp được xây dựng ở nơi khác ngoài tệp nguồn của bạn. Giống như trong thư mục gốc dist.

+0

cảm ơn rất nhiều, tôi đã nghĩ rằng điều đó xảy ra. Nhưng vẫn còn, tốt để biết :) –

+1

chỉ muốn làm nổi bật tầm quan trọng của ** kết thúc ** bit một lần nữa – tarikakyol

+0

Kết thúc ở đây là rất quan trọng. Đồng ý @trkaky – Ozil

Các vấn đề liên quan