Скажем, у меня есть это в кэше .npm:
lodash/
1.2.4/
1.3.3/
2.11.2/
Что я хочу сделать, это прочитать каталоги в папке lodash и посмотреть, приемлемы ли какие-либо версии.
Скажите, я ищу эту версию:
"lodash":"^2.11.1"
или
"lodash":"~2.11.1"
Как я могу сравнить версии в кеше с желаемой версией, чтобы увидеть, есть ли версия в кеше, удовлетворяет?
Это то, что у меня сейчас есть:
'use strict';
import semver = require('semver');
import async = require('async');
import * as cp from 'child_process';
import * as fs from 'fs';
import * as path from 'path';
export const cacheHas = function (getCacheLocation: string, dep: string, version: string, cb: any) {
const dir = path.resolve(getCacheLocation + '/' + dep);
fs.readdir(dir, function (err, items) {
if (err) {
return cb(err);
}
const matches = items.some(function (v) {
return semver.eq(v, version);
});
return cb(null, matches);
});
};
, поэтому я просто использую semver.eq()
.... поэтому мой вопрос, есть ли лучший вызов дляиспользовать кроме semver.eq()
?