Сверстники
Просто использую свой блог, чтобы поделиться небольшим советом для себя в будущем, о котором я постоянно забываю. За годы работы с клиентами я создал многоразовые компоненты React, и для меня очень важно убедиться, что такие зависимости, как React, не являются зависимостями моей собственной работы — в частности, чтобы React (например) не включался несколько раз. в моих проектах.
So…
Первая часть этого (разумно) простого решения состоит в том, чтобы переместить зависимость от моей обычной зависимости к peerDependencies
(и, насколько мне известно, я не могу установить и сохранить непосредственно в одноранговых узлах).
Теперь, когда мой пакет установлен, npm предупредит на консоли, что React (или какой-либо другой пакет) является одноранговой зависимостью и должен быть установлен.
Однако (конечно), как только я npm install …
создам другой пакет, npm (не)полезно удалит одноранговую зависимость, поскольку npm заметит, что он отсутствует в прямых зависимостях.
Решение больше похоже на обходной путь, но оно состоит в том, чтобы продублировать одноранговую зависимость в оба peerDependencies
и devDependencies
. Таким образом, дальнейшие npm install
s не удалят требуемую (разработку) зависимость, но когда проект будет опубликован, опубликованный пакет не будет включать одноранговую зависимость.
Как я уже сказал, один для будущего меня 👍
Первоначально опубликовано в журнале Remy Sharp’s b:log