2012-11-19 31 views
10

Cách mọi người xử lý các tùy chọn cấu hình chung trong Grunt cho nhiều dự án. Các dự án sẽ chia sẻ một số tùy chọn cấu hình phổ biến, ví dụ: cho min, nhưng cũng có riêng hoặc tùy chỉnh cài đặt cấu hình cho mỗi dự án, ví dụ: chỉ một trong ba dự án yêu cầu less hoặc có các tùy chọn khác nhau cho nó.Thừa kế cho các tùy chọn cấu hình phổ biến trong cấu hình grunt.js

Có cách nào để chia sẻ cấu hình chung này giữa các dự án, sử dụng kế thừa hoặc nhập tệp hiện có hay mỗi dự án phải xác định tất cả cài đặt?

Các dự án Tôi đang đề cập đến sẽ nằm trong một hệ thống phân cấp thư mục như

root 
    module1 
     grunt.js 
    module2 
     grunt.js 
    module3 
     grunt.js 

Có một số cách để cung cấp các thiết lập cấu hình chung ở cấp root?

Trả lời

10

Bạn có thể dễ dàng lưu trữ cấu hình trong bao nhiêu tệp JSON bên ngoài tùy theo nhu cầu của mình. grunt.file.readJSON sẽ giúp bạn ở đây. Ví dụ:

module.exports = function(grunt) { 

    var concatConf = grunt.file.readJSON('../concat-common.json'), 
     minConf = grunt.file.readJSON('../min-common.json'); 

    // do whatever you want with concatConf and minConf here 
    // ... 

    // Project configuration. 
    grunt.initConfig({ 
    pkg: '<json:grunt-sample.jquery.json>', 
    meta: { 
     banner: '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - ' + 
     '<%= grunt.template.today("yyyy-mm-dd") %>\n' + 
     '<%= pkg.homepage ? "* " + pkg.homepage + "\n" : "" %>' + 
     '* Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' + 
     ' Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %> */' 
    }, 

    concat: concatConf, 
    min: minConf 

    // ... 
    }); 

    // Default task. 
    grunt.registerTask('default', 'concat min'); 

}; 

Đừng quên rằng một gruntfile là một tập tin JavaScript thường xuyên thực hiện trong Node môi trường và cấu hình tùy chọn là đối tượng thường xuyên hoạt Javascript :)

+1

Cũng - 'var config = yêu cầu (__ dirname + "/ min-common.json ");' –

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