2016-01-02 18 views
6

Tôi đang sử dụng plugin gulp "tệp chính". Có một thư viện bower đó là rất lớn ... Tôi muốn bỏ qua nó trong danh sách của tôi được gọi là "fatjslib.js". lọc regex hiện tại của tôi là như sau:Làm thế nào để bỏ qua thư viện javascript bower cụ thể trong gulp (vấn đề regex có thể)?

var listOfBower = mainBowerFiles({filter: (/.*\.js$/i)}); 

này nhặt "fatjslib.js" và khi tôi in ra biến trên, tôi thấy:

"\\User\\kmichaels\\storage\\app\\bower_components\\fatjslib\FatJsLib\FatJsLib.js" 

Làm thế nào tôi có thể chỉ định các bộ lọc hoặc thay đổi regex, hoặc làm một cái gì đó như vậy mà "listOfBower" có thể bỏ qua các "FatJsLib.js" tập tin? Tôi không muốn chỉ định toàn bộ đường dẫn nếu có thể, nếu có cách để ký tự đại diện bỏ qua bất kỳ thứ gì bất kể đường dẫn với "FatJsLib", điều đó có thể là tốt nhất, nhưng tôi mở để gợi ý. Là giải pháp linh hoạt để thêm "AnotherBigLib.js" (nên có một thư viện thứ hai theo một số cấu trúc đường dẫn) vào danh sách regex hoặc bỏ qua?

Trả lời

3

Một cách cho "chính-Chòi-files" cắm ngừng đọc thư viện Chòi chơi cụ thể là phải vượt qua các tùy chọn overrides trong param hoặc để thiết lập overrides tài sản trong bower.json

PHƯƠNG PHÁP 1: Để vượt qua ghi đè param:

Vượt qua tùy chọn overrides đến mainBowerFiles() và thiết lập các thuộc tính để ignoretrue cho thư viện bạn muốn bỏ qua.

var listOfBower = mainBowerFiles({"overrides":{"fatjslib":{"ignore":true}}}); 

PHƯƠNG PHÁP 2: Chỉ định ghi đè bất động sản trong bower.json

Bạn cũng có thể chỉ định overrides tài sản trong bower.json và sau đó sẽ có không cần phải vượt qua ghi đè tùy chọn như một param. Khi main-bower-files plugin sẽ đọc tệp bower.json, nó sẽ ignore các thư viện được đặt trong thuộc tính ghi đè có cờ bỏ qua là đúng.

trong bower.json thêm một tài sản overrides:

"overrides": { 
    "fatjslib": { 
     "ignore": true 
    } 
} 
2

trong trường hợp fatjslib chứa nhiều file js, và bạn chỉ muốn bỏ qua một thời gian như bao gồm khác, sau đó bạn có thể ghi đè lên phần chính của gói.

Mỗi gói đi kèm với bower.json riêng có phần chính. Phần này chứa tệp cần được tiêm.

Những gì bạn có thể làm là, trong ghi đè - ghi đè lên phần chính chỉ để giữ các tập tin bạn muốn được tiêm

"overrides": { 
    "fatjslib": { 
     "main": ["./dist/another-file.js"] 
    } 
    } 

và sau đó cung cấp những ghi đè để mainBowerFiles

0

Làm thế nào về việc sửa đổi regex như sau: hơn

/^(?!.*FatJsLib\.js$).*\.js$/i 

Và để thêm các thư viện:

/^(?!.*(?:FatJsLib|AnotherBigLib)\.js$).*\.js$/i 

Ngoài ra, nếu bạn muốn lọc bất cứ điều gì với FatJsLib trong đường đi của nó thử với:

/^(?!.*\\(?:FatJsLib|AnotherBigLib)\\.*$).*\.js$/i 

Nguồn: tôi đã viết regex, bạn có thể thử nó here. Ngoài ra, tài liệu chính của tệp bower cho biết rằng filter can use any regex.

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