Bower dường như đi chệch khỏi semver spec ở chỗ đôi khi tôi thấy phụ thuộc mà giống như thế này (từ 2klic-góc/bower.json):Parsing Bower của
"dependencies": {
"angulargrid": "s-yadav/angulargrid#^0.4.0"
}
This question đi một chặng đường dài hướng tới giải thích bản thân semver nhưng không quá nhiều thứ đang diễn ra với phần s-yadav/angulargrid #.
Nhìn vào Chòi/lib/node_modules/Chòi-endpoint-phân tích cú pháp/index.js
Tôi thấy đoạn mã sau:
function decompose(endpoint) {
// Note that we allow spaces in targets and sources but they are trimmed
var regExp = /^(?:([\w\-]|(?:[\w\.\-]+[\w\-])?)=)?([^\|#]+)(?:#(.*))?$/;
var matches = endpoint.match(regExp);
var target;
var error;
if (!matches) {
error = new Error('Invalid endpoint: ' + endpoint);
error.code = 'EINVEND';
throw error;
}
target = trim(matches[3]);
return {
name: trim(matches[1]),
source: trim(matches[2]),
target: isWildcard(target) ? '*' : target
};
}
Vì vậy, có vẻ như một nguồn kho có thể được xác định như một phần của phiên bản phụ thuộc sử dụng # làm dấu phân cách.
Tuy nhiên tôi không thể tìm thấy bất kỳ điều gì mô tả điều này trong tài liệu hướng dẫn.
Có bất kỳ cảnh báo nào khác cần lưu ý với Bowers giải thích semver hoặc là duy nhất, và là nó đủ để chia chuỗi tại # để tìm biểu thức yêu cầu?
Giải thích tốt, cảm ơn bạn – andrew