Сверстники

Просто использую свой блог, чтобы поделиться небольшим советом для себя в будущем, о котором я постоянно забываю. За годы работы с клиентами я создал многоразовые компоненты React, и для меня очень важно убедиться, что такие зависимости, как React, не являются зависимостями моей собственной работы — в частности, чтобы React (например) не включался несколько раз. в моих проектах.

So…

Первая часть этого (разумно) простого решения состоит в том, чтобы переместить зависимость от моей обычной зависимости к peerDependencies (и, насколько мне известно, я не могу установить и сохранить непосредственно в одноранговых узлах).

Теперь, когда мой пакет установлен, npm предупредит на консоли, что React (или какой-либо другой пакет) является одноранговой зависимостью и должен быть установлен.

Однако (конечно), как только я npm install … создам другой пакет, npm (не)полезно удалит одноранговую зависимость, поскольку npm заметит, что он отсутствует в прямых зависимостях.

Решение больше похоже на обходной путь, но оно состоит в том, чтобы продублировать одноранговую зависимость в оба peerDependencies и devDependencies. Таким образом, дальнейшие npm installs не удалят требуемую (разработку) зависимость, но когда проект будет опубликован, опубликованный пакет не будет включать одноранговую зависимость.

Как я уже сказал, один для будущего меня 👍

Первоначально опубликовано в журнале Remy Sharp’s b:log