【发布时间】:2016-08-19 07:20:43
【问题描述】:
Bower 似乎偏离了semver spec,因为我有时会看到类似这样的依赖项(来自 2klic-angular/bower.json):
"dependencies": {
"angulargrid": "s-yadav/angulargrid#^0.4.0"
}
This question 在解释 semver 本身方面有很长的路要走,但对于 s-yadav/angulargrid# 部分的情况并没有那么多。
查看 bower/lib/node_modules/bower-endpoint-parser/index.js
我看到以下代码:
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
};
}
因此,似乎可以使用 # 作为分隔符将存储库源指定为依赖版本的一部分。
但是,我无法在 bower 文档中找到任何描述此内容的内容。
Bowers 对 semver 的解释是否还有其他注意事项需要注意,或者这是唯一的一个,在 # 处拆分字符串是否足以找到需求表达式?
【问题讨论】: