Ich möchte, dass Bundler ein lokales Juwel lädt. Gibt es dafür eine Option? Oder muss ich den gem-Ordner in das .bundle-Verzeichnis verschieben?
Ich glaube, Sie können das tun:
gem "foo", :path => "/path/to/foo"
Zusätzlich zur Angabe des Pfads (wie von Jimmy erwähnt) können Sie Bundler auch dazu zwingen, einen lokalen Edelstein nur für Ihre Umgebung zu verwenden, indem Sie die folgende Konfigurationsoption verwenden:
$ bundle config local.GEM_NAME /path/to/local/git/repository
Dies ist äußerst hilfreich, wenn Sie zwei Edelsteine oder einen Edelstein und eine Rails App nebeneinander entwickeln.
Beachten Sie jedoch, dass dies nur funktioniert, wenn Sie git bereits für Ihre Abhängigkeit verwenden, zum Beispiel:
# In Gemfile
gem 'rack', :github => 'rack/rack', :branch => 'master'
# In your terminal
$ bundle config local.rack ~/Work/git/rack
Wie am die docs gesehen.
Sie können auch ein lokales Juwel mit git referenzieren, wenn Sie gerade daran arbeiten.
gem 'foo',
:git => '/Path/to/local/git/repo',
:branch => 'my-feature-branch'
Dann, wenn es sich ändert, laufe ich
bundle exec gem uninstall foo
bundle update foo
Aber ich bin nicht sicher, ob jeder diese beiden Schritte ausführen muss.
Um das lokale Gem-Repository in einem Rails Projekt zu verwenden, gehen Sie wie folgt vor:
Überprüfen Sie, ob es sich bei Ihrem Gem-Ordner um ein Git-Repository handelt (der Befehl wird im Gem-Ordner ausgeführt).
git rev-parse --is-inside-work-tree
Abrufen des Repository-Pfads (der Befehl wird im Gem-Ordner ausgeführt)
git rev-parse --show-toplevel
Einrichten einer lokalen Außerkraftsetzung für die Anwendung Rails
bundle config local.GEM_NAME /path/to/local/git/repository
wo GEM_NAME
ist der Name deines Edelsteins und /path/to/local/git/repository
ist die Ausgabe des Befehls in Punkt 2
Fügen Sie in Ihrer Anwendung Gemfile
die folgende Zeile hinzu:
gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
Laufen bundle install
sollte ungefähr so aussehen:
Using GEM_NAME (0.0.1) from git://github.com/GEM_NAME/GEM_NAME.git (at /path/to/local/git/repository)
wo GEM_NAME
ist der Name deines Edelsteins und /path/to/local/git/repository
von Punkt 2
Führen Sie zum Schluss bundle list
, nicht gem list
und du solltest so etwas sehen:
GEM_NAME (0.0.1 5a68b88)
wo GEM_NAME
ist der Name Ihres Edelsteins
Ein paar wichtige Fälle, die ich beobachte:
Rails 4.0.2
Ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Ubuntu 13.10
RubyMine 6.0.3
RubyMine
lokale Edelsteine nicht als externe Bibliothek anzeigt. Weitere Informationen zum Fehler finden Sie hier und hierstop/start
der Rails ServerWenn ich das version
des Edelsteins ändere, stopping/starting
Der Rails Server gibt einen Fehler aus. Um diesen Fehler zu beheben, gebe ich die Gem-Version in der Rails Anwendung Gemfile
an. so was:
gem 'GEM_NAME', '0.0.2', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
Sie können Edelsteine mit Quelle referenzieren: source: 'https://source.com', git repository (:github => 'git/url')
und mit lokalem Pfad :path => '.../path/gem_name'
.
In diesem Artikel erfahren Sie mehr über Gemfiles und deren Verwendung .