Как/должен ли я обновить пакет npm, если он не нужен?

Я пытался запросить данные в Firebase, используя запрос списки.

Когда я пытаюсь сделать что-то аналогичное тому, что описано в этой документации:

getMatchesFiltered(matchId: string, filter: string, sortDirection: string, pageIndex: number, pageSize: number){
    let queryObservable = this.db.list('/matches', ref => ref.orderByKey(true).limitToFirst(2));
    return queryObservable;
  }

Я получил ошибку "Аргумент типа" {запрос: {...};}' не может быть назначен параметру типа "FirebaseListFactoryOpts", что привело меня к этот полезный пост SO. Однако, когда я попытался изменить вышеуказанное на

getMatchesFiltered(matchId: string, filter: string, sortDirection: string, pageIndex: number, pageSize: number): AngularFireList<Match[]>{
    let queryObservable = this.db.list('/matches', ref => ref.orderByKey(true).limitToFirst(2).valueChanges());
    return queryObservable;
  }

и добавить AngularFireList в импорт 'angularfire2/database', я получаю следующую ошибку:

ОШИБКА в src/app/database.service.ts(7,81): ошибка TS2305: модуль «/Users/mf/Desktop/dataJitsu/node_modules/angularfire2/database» не имеет экспортированного члена «AngularFireList».

Это наводит меня на мысль, что, возможно, у меня старая версия angularfire2? Действительно, мой package.json говорит:

"angularfire2": "^4.0.0-rc0",

И я полагаю, что новый список AngularFireList взят из версии 5.x.x?

Однако, когда я пытаюсь обновить, он не позволяет мне. Когда я запускаю устаревший npm, я вижу следующее:

npm устарел, показывая, что версия angularfire2 WANTED остается на уровне 4.0.0-rc0

Обратите внимание, что WANTED версия angularfire2 по-прежнему 4.0.0-rc0.

Что, наконец, подводит нас к моему вопросу: как мне выяснить, какие пакеты хотят, чтобы мои версии оставались там, где они есть? Другими словами, что удерживает меня от дальнейшего обновления? В качестве альтернативы, если кто-нибудь знает, как решить эту проблему на фронте angularfire2, я тоже готов к этому.


person Atticus29    schedule 12.06.2018    source источник


Ответы (1)


Требуемый Version остается на уровне 4.0.0-rc0 из-за семантического управления версиями. в вашем package.json ("angularfire2": "^4.0.0-rc0")

Как потребитель, вы можете указать, какие типы обновлений может принимать ваше приложение, в файле package.json.

Если бы вы начинали с пакета 1.0.4, вы бы указали диапазоны следующим образом:

  • Выпуски исправлений: 1.0 или 1.0.x или ~1.0.4
  • Незначительные выпуски: 1 или 1.x или ^ 1.0.4
  • Основные выпуски: * или x

О другой проблеме трудно сказать, не видя более релевантного кода. Я бы начал с проверки этот пост

person Tim Martens    schedule 13.06.2018
comment
мой вопрос о Semantic Versioning меньше, что это такое? и многое другое, как мне отследить пакеты, которые являются ограничивающими факторами? - person Atticus29; 17.06.2018
comment
Я не думаю, что есть какие-либо другие пакеты, препятствующие обновлению библиотеки angularfire. Это просто аннотация в вашем конфиге ^4.0.0-rc0. ^4 означает: обновлять только минорные выпуски. Angularfire2 версии 5 — это крупное обновление. Вы можете изменить конфигурацию на "angularfire2": ^5.0.0-rc или "angularfire2": *, а затем снова запустить npm outdated. - person Tim Martens; 19.06.2018