2012-11-12 43 views
17

Tôi có thể xử lý đối số dòng lệnh ở đâu?gruntjs - đối số dòng lệnh

ví dụ: grunt dist --env=UAT. Làm cách nào để nhận được giá trị cho env?

Trong khi tôi đang ở đó, làm thế nào tôi sẽ gán một giá trị mặc định cho điều này nếu nó không được đặt trên dòng lệnh?

+0

Bạn có cần để xử lý đối số cho một nhiệm vụ cụ thể? –

Trả lời

36

Bạn có thể sử dụng grunt.option() hay cụ thể hơn:

var env = grunt.option('env') || 'default';

để lấy env luận hoặc mặc định thành chuỗi 'default' nếu đối số là không có mặt.

0

Tôi thấy việc xử lý mặc định trong grunt là thiếu. Phương pháp nêu trên các công trình, nhưng nó nhanh chóng bị mệt mỏi khi bạn có nhiều lựa chọn.

Một chức năng helper ít có thể dễ dàng này:

function defaultOptions(options) { 
    for(var key in options) { 
    if(options.hasOwnProperty(key) && !grunt.option(key)) { 
     grunt.option(key, options[key]); 
    } 
    } 
} 

Sau đó, bạn có thể sử dụng như:

defaultOptions({ 
    env : "staging" 
}); 

Và tại CLI:

grunt // { env : "staging" } 
grunt --env=UAT // { env : "UAT" } 
Các vấn đề liên quan