// 预计算一下版本是否有冲突
|
const semver = require('semver')
|
|
const validateSemver = (range1, range2) => {
|
if (!range1 || !range2) {
|
return false
|
}
|
// 都是指定版本
|
if (semver.valid(range1) && semver.valid(range2)) {
|
return (semver.coerce(range1) === semver.coerce(range2))
|
}
|
|
// 都是范围
|
if (semver.validRange(range1) && semver.validRange(range2)) {
|
return semver.intersects(range1, range2)
|
}
|
|
// 一个版本一个范围
|
if (semver.valid(range1) && semver.validRange(range2)) {
|
return semver.satisfies(range1, range2)
|
}
|
|
if (semver.valid(range2) && semver.validRange(range1)) {
|
return semver.satisfies(range2, range1)
|
}
|
|
return false
|
}
|
|
module.exports = validateSemver
|