Semver + последний с зависимостями NPM - PullRequest
0 голосов
/ 11 октября 2018

Действительная зависимость NPM может выглядеть следующим образом:

dependencies:{
  "lodash":"latest"
}

, но я использую semver следующим образом:

semver.eq('2.1.3','latest');

, тогда я получаю:

TypeError: Invalid Version: latest

isЕсть ли способ обработать 'последний' с помощью semver или просто ad-hoc?

1 Ответ

0 голосов
/ 11 октября 2018

Есть ли способ обработки 'последней' 'с помощью semver ....?

Нет, если не использовать сам пакет semver , так как он этого не делаетзнать, что «последний».Метаданные, хранящиеся в реестре npm, связывают «последний» для данного пакета с полумесяцем.

Рассмотрите возможность выделения команды npm-view , используя execSync() илиexec(), чтобы получить 'последний' semver для пакета в реестре npm 1 .Затем передайте возвращенное значение в качестве второго аргумента для сравнения semver.eq(...).

Например:

const semver = require('semver');
const execSync = require('child_process').execSync;

function getLatestVersion(pkg) {
  return JSON.parse(execSync(`npm view ${pkg} version --json`,
      { stdio: ['ignore', 'pipe', 'pipe'] }).toString());
}

const isEqual = semver.eq('2.1.3', getLatestVersion('lodash'));
console.log(isEqual); // --> false

  1. Как вы знаете из предыдущеговопрос здесь .Именно к чему относится последняя версия 1033 *, является ли она 'stable' , 'alpha' , 'beta' , 'rc' и т. д. могут отличаться.Однако, если владелец пакета правильно опубликовал обновления, он, скорее всего, будет 'stable' .
...