Po aktualizacji paczki będziesz mieć kilka klejnotów, które mogą być przestarzałe - ponieważ została zainstalowana nowsza wersja tego klejnotu. Nie ma takiego polecenia pod bundle
plikiem wykonywalnym tj bundle clean
. Jak pozbyć się tych przestarzałych klejnotów?
To jest próba zmniejszenia rozmiaru ślimaka w mojej aplikacji rails.
źródło
bundle clean --force
nie dotyczy to twoich globalnych klejnotów, ale tylko tych w twoim obecnym zestawie klejnotów.bundle clean --force
Daje więc ten sam wynik co i szybciej niżrvm gemset empty
następujebundle install
.Jeśli używasz RVM, możesz użyć
rvm gemset empty
dla bieżącego zestawu gemset - to polecenie usunie wszystkie klejnoty zainstalowane w obecnym zestawie gemset (sam gemset pozostanie na miejscu). Następnie uruchombundle install
, aby zainstalować aktualne wersje klejnotów. Upewnij się również, że nie usuniesz takich ogólnych klejnotów, jak rake, bundler i tak dalej podczasrvm gemset empty
(jeśli tak jest, zainstaluj je ręcznie przezgem install
wcześniejbundle install
).źródło
Jeśli używasz RVM, możesz zainstalować swoje klejnoty w klejnotach . W ten sposób, jeśli chcesz przeprowadzić pełne czyszczenie, możesz po prostu usunąć zestaw klejnotów, który z kolei usunie wszystkie zainstalowane w nim klejnoty. Inną opcją jest po prostu odinstalowanie nieużywanych klejnotów i ponowne uruchomienie
bundle install
polecenia.Ponieważ pakiet ma być narzędziem do wersjonowania klejnotów projektu na projekt, nie udostępnia
bundle clean
polecenia. Oznaczałoby to możliwość usunięcia klejnotów związanych również z innymi projektami, co nie byłoby pożądane. Oznacza to, że bundler jest prawdopodobnie niewłaściwym narzędziem do zarządzania katalogiem gem. Moją osobistą rekomendacją byłoby użycie klejnotów RVM do piaskownicy klejnotów w niektórych projektach lub wersjach ruby.źródło
Szczerze mówiąc, miałem problemy z zależnościami cyklicznymi bundlerów i najlepszym sposobem jest
rm -rf .bundle
. Oszczędź sobie bólu głowy i po prostu użyj młotka.źródło
rvm implode --force
a następnie ponownie zainstaluj rvmZakładam, że instalujesz klejnoty w
vendor/bundle
? Jeśli tak, dlaczego nie usunąć wszystkich klejnotów i wyczyścićbundle install
?źródło
Szukając odpowiedzi na to samo pytanie, trafiłem na gem_unused .
Możesz także przeczytać ten artykuł: http://chill.manilla.com/2012/12/31/clean-up-your-dirty-gemsets/
Kod źródłowy jest dostępny na GitHub: https://github.com/ apolzon / gem_unused
źródło
Po prostu usuń przestarzałe klejnoty ze swojego pliku klejnotów. Jeśli mówisz o Heroku (nie wspomniałeś o tym), to slug jest kompilowany przy każdym nowym wydaniu, używając tylko aktualnej zawartości tego pliku.
źródło
Po prostu wykonaj, aby usunąć przestarzałe klejnoty i usunąć ostrzeżenia o drukowaniu po pakiecie.
źródło