2017-01-26 38 views
6

Mój projekt ma zależność, którą czasami uzyskuję z serwera paczek, a czasami uzyskuję z lokalnej kopii, którą mam na moim komputerze. W rezultacie często muszę mieć przełącznik Yarn, gdy szuka zależności. Co więcej, często zmieniam lokalną kopię zależności i muszę zobaczyć tę zmianę odzwierciedloną w moim głównym projekcie. W rezultacie potrzebuję sposobu, aby powiedzieć Yarn, aby kontynuował przeglądanie tej samej lokalizacji dla zależności, ale aby ponownie zainstalować tę zależność, pomijając pamięć podręczną i pobierając ją bezpośrednio z bieżącego źródła, nawet jeśli numer wersji się nie zmienił. (Czasami chcę wprowadzić niewielkie zmiany w zależności, a aktualizowanie numeru wersji za każdym razem szybko staje się denerwujące.)Jak zmusić Yarn do ponownej instalacji paczki?

Jak to zrobić?

Próbowałem następujących, ale żaden z nich nie działa:

yarn remove dependency 
yarn add file:/dependency 

nadal korzysta z poprzedniej wersji uzależnienia.

yarn remove dependency 
yarn cache clear 
yarn add file:/dependency 
yarn install --force 

Również używa poprzedniej wersji zależności.

yarn remove dependency 
rm -rf node_modules/ 
yarn cache clear 
yarn add file:/dependency 
yarn install --force 

Nadal nadal korzysta z poprzedniej wersji zależności.

Jak mogę zapewnić, że Yarn używa najnowszej wersji zależności?

+0

miałem tę rozmowę na czacie o to pytanie: http://chat.stackoverflow.com/rooms/17/conversation/reinstalling-local-dependency-in-yarn Wskazówki, które otrzymałem na tym czacie, czasami działają, ale trudno mi konsekwentnie aktualizować moją lokalną zależność. – Kevin

+0

Usuń katalog node_modules, zaktualizuj plik package.json o poprawnej wersji i ponownie zainstaluj wszystko. Przędza jest szybka; zajmie ci to tylko kilka sekund. –

+0

@EzraChang Jak omówiłem w moim pytaniu, próbowałem tego i to nie zadziałało. – Kevin

Odpowiedz

5

Możesz użyć yarn link command. Spowoduje to ustawienie lokalnej zależności, tak aby za każdym razem, gdy wprowadzono zmianę zależności, natychmiast pojawiała się ona w głównym projekcie bez konieczności wykonywania innych czynności w celu jej aktualizacji.

Jeśli głównym projektu jest ~/programming/main a zależność jest ~/programming/dependency i nazywa MyLocalDependency, będziemy chcieli, aby:

1) Uruchom yarn link (bez dodatkowych flagi) z poziomu uzależnienia:

cd ~/programming/dependency 
yarn link 

2) Run yarn link <name of dependency package> z poziomu głównego projektu:

cd ~/programming/main 
yarn link MyLocalDependency 

I Jesteś skończony!

Jeśli chcesz przełączyć się z lokalnej kopii zależności na hostowaną gdzie indziej, możesz użyć yarn unlink.

cd ~/programming/main 
yarn unlink MyLocalDependency 
cd ~/programming/dependency 
yarn unlink 
12

Ponowna instalacja pakietu po prostu kasowanie modułu węzła współpracuje z:

yarn install --check-files