Chciałbym, aby Bundler załadował lokalny klejnot. Czy jest na to jakaś opcja? Czy też muszę przenieść folder gem do katalogu .bundle?
359
Chciałbym, aby Bundler załadował lokalny klejnot. Czy jest na to jakaś opcja? Czy też muszę przenieść folder gem do katalogu .bundle?
Wierzę, że możesz to zrobić:
gem "foo", path: "/path/to/foo"
spring stop
sprawdzić, czy to rzeczywiście jest problem.Oprócz określenia ścieżki (jak wspomniał Jimmy) możesz również zmusić Bundlera do używania lokalnego klejnotu dla twojego środowiska tylko przy użyciu następującej opcji konfiguracji:
Jest to niezwykle pomocne, jeśli tworzysz obok siebie dwa klejnoty lub klejnot oraz aplikację railsową.
Pamiętaj jednak, że działa to tylko wtedy, gdy już używasz git do swojej zależności, na przykład:
Jak widać w dokumentacji .
źródło
BUNDLE_PATH
(budowanie pakietu do dystrybucji). Robiąc to, co zasugerowałeś lub odpowiedź Jimmy'ego, robi to tylkousing
, a nie instaluje się w moimBUNDLE_PATH
folderze. Nie byłem w stanie tego rozgryźć, jakaś pomoc?bundle config --delete local.GEM_NAME
bundle config disable_local_branch_check true
przeciwnym razie Bundler narzeka na gałąź. Bądź jednak ostrożny, ponieważ kontrole mają powstrzymać wprowadzanie niepoprawnych zatwierdzeńGemfile.lock
. Dokumenty tutaj: bundler.io/v1.12/git.htmlMożesz także odwołać się do lokalnego klejnotu za pomocą git, jeśli akurat nad nim pracujesz.
Potem, jeśli to się zmieni, biegnę
Ale nie jestem pewien, czy wszyscy muszą wykonać te dwa kroki.
źródło
bundle uninstall <gem> && bundle install
, dla każdej zmiany, którą chcesz odzwierciedlić w swojej aplikacjiAby użyć lokalnego repozytorium klejnotów w projekcie Rails, wykonaj następujące czynności:
Sprawdź, czy folder gem jest repozytorium git (polecenie jest wykonywane w folderze gem)
Pobieranie ścieżki repozytorium (polecenie jest wykonywane w folderze gem)
Konfigurowanie lokalnego zastąpienia dla aplikacji railsowej
gdzie
GEM_NAME
jest nazwą twojego klejnotu i/path/to/local/git/repository
jest wynikiem polecenia w punkcie2
W swojej aplikacji
Gemfile
dodaj następujący wiersz:Bieganie
bundle install
powinno dać coś takiego:gdzie
GEM_NAME
jest nazwa twojego klejnotu i/path/to/local/git/repository
od punktu2
Wreszcie uruchom
bundle list
, nie,gem list
i powinieneś zobaczyć coś takiego:gdzie
GEM_NAME
jest nazwa twojego klejnotuKilka ważnych przypadków, które obserwuję za pomocą:
RubyMine
to, że nie pokazuje lokalnych klejnotów jako zewnętrznej biblioteki. Więcej informacji o błędzie można znaleźć tutaj i tutajstop/start
serwer railsowyJeśli zmieniam
version
klejnot,stopping/starting
serwer Railsów wyświetla błąd. Aby to naprawić, podaję wersję klejnotu w aplikacjiGemfile
railsowej w następujący sposób:źródło
Możesz odwoływać się do klejnotów za pomocą źródła:
source: 'https://source.com', git repository (:github => 'git/url')
i ścieżki lokalnej:path => '.../path/gem_name'
.Możesz dowiedzieć się więcej o Gemfiles i tym, jak ich używać w tym artykule.
źródło
Jeśli chcesz też gałąź:
źródło
Only gems with a git source can specify a branch.