Jak Mogę określić lokalny klejnot w moim Gemfile?
Chciałbym, żeby Bundler załadował lokalny klejnot. Jest na to jakieś wyjście? Czy muszę przenieść folder gem do .katalog pakietów?
6 answers
Wierzę, że możesz to zrobić:
gem "foo", :path => "/path/to/foo"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-20 08:51:32
Oprócz podania ścieżki (jak wspomniał Jimmy) Możesz również wymusić użycie lokalnego klejnotu tylko dla Twojego środowiska , używając następującej opcji konfiguracji:
$ bundle config local.GEM_NAME /path/to/local/git/repository
Jest to niezwykle pomocne, jeśli tworzysz obok siebie dwa klejnoty lub klejnot i aplikację rails.
Zauważ jednak, że działa to tylko wtedy, gdy używasz już Gita dla swojej zależności, na przykład:
# In Gemfile
gem 'rack', :github => 'rack/rack', :branch => 'master'
# In your terminal
$ bundle config local.rack ~/Work/git/rack
Jak widać nadocs .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-02 11:11:50
Możesz również odnieść się do lokalnego klejnotu z Gitem, jeśli akurat nad nim pracujesz.
gem 'foo',
:git => '/Path/to/local/git/repo',
:branch => 'my-feature-branch'
Wtedy, jeśli się zmieni, uruchamiam
bundle exec gem uninstall foo
bundle update foo
Ale nie jestem pewien, czy każdy musi wykonać te dwa kroki.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-25 09:03:44
Aby użyć lokalnego repozytorium gem w projekcie Rails, wykonaj poniższe kroki:]}
-
Sprawdź, czy twój folder gem jest repozytorium git (polecenie jest wykonywane w folderze gem)
git rev-parse --is-inside-work-tree
-
[24]} pobieranie ścieżki do repozytorium (polecenie jest wykonywane w folderze gem)
git rev-parse --show-toplevel
-
Ustawianie lokalnego nadpisania dla aplikacji rails
bundle config local.GEM_NAME /path/to/local/git/repository
Gdzie
GEM_NAME
to nazwa Twojego klejnotu, a {[9] } to wyjście polecenia w punkcie2
-
W aplikacji
Gemfile
Dodaj następujący wiersz:gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
-
Bieganie
bundle install
powinno dać coś takiego:Using GEM_NAME (0.0.1) from git://github.com/GEM_NAME/GEM_NAME.git (at /path/to/local/git/repository)
Gdzie
GEM_NAME
to nazwa Twojego klejnotu i/path/to/local/git/repository
z punktu2
-
Wreszcie Uruchom
bundle list
, a niegem list
i powinieneś zobaczyć coś takiego:GEM_NAME (0.0.1 5a68b88)
Gdzie
GEM_NAME
to nazwa Twojego klejnotu
Kilka ważnych spraw, które obserwuję użycie:
Rails 4.0.2
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Ubuntu 13.10
RubyMine 6.0.3
- wygląda na to, że
RubyMine
nie pokazuje lokalnych klejnotów jako zewnętrznej biblioteki. Więcej informacji o błędzie można znaleźć tutaj i tutaj - kiedy zmieniam coś w lokalnym klejnocie, aby załadować się do aplikacji rails powinienem
stop/start
serwer rails -
Jeśli zmieniam
version
gem,stopping/starting
Serwer Rails wyświetla mi błąd. Aby to naprawić, podaję wersję gem w rails aplikacjaGemfile
w ten sposób:gem 'GEM_NAME', '0.0.2', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-03 15:49:11
Możesz odnosić się do klejnotów używając source: source: 'https://source.com', git repository (:github => 'git/url')
oraz local path :path => '.../path/gem_name'
.
W tym artykule dowiesz się więcej o plikach Gemfiles i jak z nich korzystać.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-09 15:33:59
Jeśli chcesz również gałąź:
gem 'foo', path: "point/to/your/path", branch: "branch-name"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-18 22:27:04