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?
359
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 dies tun:
gem "foo", path: "/path/to/foo"
spring stop
zu prüfen, ob dies tatsächlich das Problem ist.Zusätzlich zur Angabe des Pfads (wie von Jimmy erwähnt) können Sie Bundler auch zwingen, ein lokales Juwel für Ihre Umgebung zu verwenden, indem Sie nur die folgende Konfigurationsoption verwenden:
Dies ist äußerst hilfreich, wenn Sie zwei Edelsteine oder eine Edelstein- und eine Schienen-App nebeneinander entwickeln.
Beachten Sie jedoch, dass dies nur funktioniert, wenn Sie git bereits für Ihre Abhängigkeit verwenden, zum Beispiel:
Wie in den Dokumenten zu sehen .
quelle
BUNDLE_PATH
(ein Paket für die Verteilung erstellen) verwende. Wenn Sie das tun, was Sie vorgeschlagen haben, oder Jimmys Antwort, wird nur a ausgeführtusing
und nicht tatsächlich in meinemBUNDLE_PATH
Ordner installiert . Ich konnte das nicht herausfinden, irgendeine Hilfe?bundle config --delete local.GEM_NAME
bundle config disable_local_branch_check true
möchten , müssen Sie auch festlegen, oder Bundler beschwert sich über den Zweig. Seien Sie jedoch vorsichtig, da die Überprüfungen verhindern sollen, dass falsche Commits eingehenGemfile.lock
. Docs hier: bundler.io/v1.12/git.htmlSie können auch mit git auf ein lokales Juwel verweisen, wenn Sie gerade daran arbeiten.
Wenn es sich dann ändert, renne ich
Ich bin mir jedoch nicht sicher, ob jeder diese beiden Schritte ausführen muss.
quelle
bundle uninstall <gem> && bundle install
für jede Änderung, die Sie in Ihrer App widerspiegeln möchtenFühren Sie die folgenden Schritte aus, um das lokale Gem-Repository in einem Rails-Projekt zu verwenden:
Überprüfen Sie, ob Ihr Gem-Ordner ein Git-Repository ist (der Befehl wird im Gem-Ordner ausgeführt).
Repository-Pfad abrufen (der Befehl wird im Gem-Ordner ausgeführt)
Einrichten einer lokalen Überschreibung für die Schienenanwendung
Wo
GEM_NAME
ist der Name Ihres Edelsteins und/path/to/local/git/repository
ist die Ausgabe des Befehls in Punkt2
Fügen Sie in Ihrer Anwendung
Gemfile
die folgende Zeile hinzu:Laufen
bundle install
sollte ungefähr so etwas geben:Wo
GEM_NAME
ist der Name Ihres Edelsteins und/path/to/local/git/repository
von Punkt2
Schließlich laufen
bundle list
, nichtgem list
und Sie sollten so etwas sehen:Wo
GEM_NAME
ist der Name Ihres Edelsteins?Einige wichtige Fälle, die ich beobachte, sind:
RubyMine
dass lokale Edelsteine nicht als externe Bibliothek angezeigt werden. Weitere Informationen zum Fehler finden Sie hier und hierstop/start
den Rails-Server verwenden, um in die Rails-Anwendung geladen zu werdenWenn ich
version
das Juwelstopping/starting
ändere, gibt mir der Rails-Server einen Fehler. Um das Problem zu beheben, spezifiziere ich die Gem-Version in der Rails-AnwendungGemfile
wie folgt:quelle
Sie können Edelsteine mit source:
source: 'https://source.com', git repository (:github => 'git/url')
und mit lokalem Pfad referenzieren:path => '.../path/gem_name'
. In diesem Artikelerfahren Sie mehr über Gemfiles und deren Verwendung .
quelle
Wenn Sie den Zweig auch wollen:
quelle
Only gems with a git source can specify a branch.