Правильный способ добавить Angular в качестве зависимости в список зависимостей библиотеки npm - PullRequest
2 голосов
/ 27 июня 2019

У меня есть небольшой пакет angular на NPM, который я поддерживаю, чтобы его можно было использовать во всех новых версиях angular. В моем package.json я добавил угловой в список peerDependencies, чтобы убедиться, что они всегда присутствуют в проекте, который использует мою библиотеку:

  "peerDependencies": {
     "@angular/animations": "^7.x",
     "@angular/common": "^7.x",
     "@angular/core": "^7.x",
     "@angular/platform-browser": "^7.x",
     "rxjs": "^6.x",
     "typescript": ">=3.1.1 <3.3.0",
     "zone.js": "^0.8.x"
  }

Но по мере выпуска каждой новой основной версии angular пользователи моей библиотеки постоянно испытывают предупреждения о несоответствии одноранговых зависимостей, отображаемые в консоли при выполнении npm install, как показано ниже:

npm WARN ng2-go-top-button@7.1.0 requires a peer of @angular/animations@^7.x but none is installed. You must install peer dependencies yourself.

Итак, мой вопрос: как правильно объявить angular зависимостью в моей библиотеке, чтобы мне не приходилось обновлять ее каждый раз, когда выпускается новая angular? Может мне вообще не нужен peerDependencies? Но как убедиться, что в проекте, использующем мою библиотеку, всегда есть все необходимые библиотеки? Заранее спасибо.

1 Ответ

0 голосов
/ 02 июля 2019

Хорошо, поэтому я сам нашел решение, потому что другие ответы на мой вопрос не вполне соответствовали моей проблеме.

Я мог определить angular и другие зависимости, используя "*" или "^x.x"управление версиями, как предлагалось в предыдущем ответе, но это было бы не совсем корректно, потому что не всегда последняя версия angular полностью совместима с последней версией typescript, поэтому установка версий зависимостей на "*" может вызватьпроект, который зависит от моей библиотеки, чтобы сломаться.

Итак, наконец, я решил сохранить свой список peerDependencies КАК ЕСТЬ и обновлять его каждый раз, когда выпускается новый angular.Таким образом, моя библиотека сохранит совместимый список зависимостей и не будет нарушена при разработке, а также не приведет к разрыву зависимого проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...