#javascript #npm #react-admin #peer-dependencies
Вопрос:
Этот вопрос в основном основан на react-admin
тегах , отсюда и теги, но, вероятно, он также полезен в других ситуациях.
Итак, у нас есть react-admin
то, что зависит от @material-ui/core
. Это позволяет мне использовать пользовательский интерфейс Material в моем собственном коде при реализации пользовательского интерфейса, не завися от @material-ui/core
себя. Однако я не могу использовать какую-либо справку из IDE (VSCode / Emacs LSP), например, я не могу ничего автоматически импортировать из @material-ui/core
.
Я считаю такое поведение правильным и ожидаемым, поскольку @material-ui/core
оно не зависит от моего проекта. Тем не менее, я все еще могу использовать эту способность, поэтому я хотел бы, чтобы мои инструменты знали об этом. Добавление его в качестве моей собственной зависимости довольно уродливо, так как мне пришлось бы синхронизировать версии с react-admin
«s», что может быть хлопотно и как бы сводит на нет весь смысл управления зависимостями. Я попытался добавить @material-ui/core
в свой peerDependencies
, который, кажется, немного отстает, но на удивление работает как для VSCode, так и для LSP.
Итак, вопрос в следующем: какой правильный способ повторного использования зависимостей без добавления к моему проекту множества ненужных зависимостей?
Комментарии:
1. Наличие неожиданных зависимостей (не объявленных) является неожиданным и, следовательно, ГОРАЗДО БОЛЕЕ УРОДЛИВЫМ, чем прямое добавление зависимости. Напротив, добавление
@material-ui/core
в качестве зависимости в ваш код красиво (что противоположно уродливому), поскольку оно позволяет сопровождающим знать, что используется, а также какая версия используется, просто взглянув на package.json
Ответ №1:
С точки зрения приложения, как правило, если вы хотите использовать @material-ui/core
его, вам следует включить его в свои зависимости. понятия не имею, почему вы думаете, что это «некрасиво»
В приложении не должно быть peerDeps. peerDeps предназначен для использования плагином/библиотекой.