Проблема с использованием ссылки пряжи для использования локального пакета npm с peerDependencies - PullRequest
0 голосов
/ 05 марта 2019

Я сталкиваюсь со следующей проблемой при попытке разработать библиотеку компонентов React с использованием styled-components.

Для целей данного примера предположим, что у нас есть два репозитория app и core и что core будет использовано app.

В настоящее время core написан на TypeScript и построен с использованием tsc.

Чтобы быстро выполнить итерацию, я попытался использовать yarn link, чтобы связать core с app.

Это прекрасно работает для app find core ...проблема, с которой я сталкиваюсь, заключается в том, что когда скомпилированный код TypeScript из core пытается запросить пакет, скажем styled-components, он пытается найти этот пакет в node_modules из core ( не )app).Поскольку у меня styled-components как peerDependency и devDependency, я могу найти его в core node_modules, но это не то, чего я хочу.Я хотел бы использовать styled-components из app.

Одна альтернатива yarn link, которую я попробовал, - это добавить зависимость core к app через file:/path.Кажется, это работает, как ожидалось, но создает новые проблемы.Как я могу иметь путь к моей машине разработки, существующей в package.json только для локальной разработки (без постоянного переключения туда-сюда)?Кроме того, похоже, что любые обновления, сделанные в core, требуют удаления пакета из app и очистки кеша пряжи перед повторным добавлением.

Есть ли какой-нибудь более простой способ заставить этот сценарий работать?Я только начал рассматривать Rollup или Webpack как решение, но не уверен, что это верное направление.

1 Ответ

0 голосов
/ 25 июня 2019

Как вы сказали, машинописный текст разрешает эти проблемы "неправильно".

Чтобы преодолеть это, скажите машинописному тексту разрешить проблемные пакеты в node_modules в tsconfig.json > compilerOptions > paths потребителя следующим образом:

    "paths": {
      "rxjs/*": ["node_modules/rxjs/*"],
    }

Также см. этот пост , чтобы узнать больше.

...