Как заставить Yarn переустановить пакет?
мой проект имеет зависимость, которую я иногда получаю от сервера пакетов, а иногда получаю от локальной копии, которая у меня есть на моей машине. В результате мне часто нужно иметь переключатель пряжи, где он ищет зависимость. Кроме того, я часто меняю локальную копию зависимости и должен видеть, что это изменение отражено в моем основном проекте. В результате мне нужен способ сказать Yarn, чтобы продолжить поиск в том же месте для зависимости, но переустановить зависимость, пропустив кэш и захватывает его непосредственно из текущего источника, даже если номер версии не изменился. (Иногда я хочу попробовать небольшие изменения в зависимости, и обновление номера версии каждый раз будет быстро раздражать.)
как мне это сделать?
Я пробовал следующие, но ни один из них не работает:
yarn remove dependency
yarn add file:/dependency
продолжает использовать предыдущую версию зависимости.
yarn remove dependency
yarn cache clear
yarn add file:/dependency
yarn install --force
также продолжает использовать предыдущую версию зависимость.
yarn remove dependency
rm -rf node_modules/
yarn cache clear
yarn add file:/dependency
yarn install --force
по-прежнему продолжает использовать предыдущую версию зависимости.
как я могу гарантировать, что Yarn использует последнюю версию моей зависимости?
2 ответов
можно использовать yarn link
команда. Это настроит вашу локальную зависимость так, что всякий раз, когда вы вносите изменения в зависимость, она немедленно появляется в вашем основном проекте без необходимости делать что-либо еще для ее обновления.
если ваш основной проект находится в ~/programming/main
и ваша зависимость находится в ~/programming/dependency
и называется MyLocalDependency
вы хотите:
1) Run yarn link
(без дополнительных флагов) из зависимость:
cd ~/programming/dependency
yarn link
2) Run yarn link <name of dependency package>
из вашего основного проекта:
cd ~/programming/main
yarn link MyLocalDependency
и ты молодец!
если вы хотите переключиться с локальной копии зависимости на другую, размещенную в другом месте, вы можете использовать yarn unlink
.
cd ~/programming/main
yarn unlink MyLocalDependency
cd ~/programming/dependency
yarn unlink
если вы используете NPM вместо пряжи,npm link
и npm link <dependency>
работать эффективно таким же образом. Чтобы отключить зависимость, запустите npm rm --global <dependency>
. (Это потому, что npm link
работает путем создания simlink в глобальном наборе пакетов NPM, поэтому удаление связанной зависимости из глобальных пакетов также разрывает ссылку.)
посмотреть the npm link
документация и Как удалить пакет, установленный с помощью npm link?