semver-validate.js 740 B

123456789101112131415161718192021222324252627282930
  1. // 预计算一下版本是否有冲突
  2. const semver = require('semver')
  3. const validateSemver = (range1, range2) => {
  4. if (!range1 || !range2) {
  5. return false
  6. }
  7. // 都是指定版本
  8. if (semver.valid(range1) && semver.valid(range2)) {
  9. return (semver.coerce(range1) === semver.coerce(range2))
  10. }
  11. // 都是范围
  12. if (semver.validRange(range1) && semver.validRange(range2)) {
  13. return semver.intersects(range1, range2)
  14. }
  15. // 一个版本一个范围
  16. if (semver.valid(range1) && semver.validRange(range2)) {
  17. return semver.satisfies(range1, range2)
  18. }
  19. if (semver.valid(range2) && semver.validRange(range1)) {
  20. return semver.satisfies(range2, range1)
  21. }
  22. return false
  23. }
  24. module.exports = validateSemver