J'aimerais que Bundler charge une gemme locale. Y a-t-il une option pour cela? Ou dois-je déplacer le dossier gem dans le répertoire .bundle?
359
J'aimerais que Bundler charge une gemme locale. Y a-t-il une option pour cela? Ou dois-je déplacer le dossier gem dans le répertoire .bundle?
Je pense que vous pouvez le faire:
gem "foo", path: "/path/to/foo"
spring stop
de voir si c'est bien le problème.En plus de spécifier le chemin (comme l'a mentionné Jimmy), vous pouvez également forcer Bundler à utiliser une gemme locale pour votre environnement uniquement en utilisant l'option de configuration suivante:
Cela est extrêmement utile si vous développez deux gemmes ou une gemme et une application de rails côte à côte.
Notez cependant que cela ne fonctionne que lorsque vous utilisez déjà git pour votre dépendance, par exemple:
Comme on le voit sur les documents .
la source
BUNDLE_PATH
(construire un package pour la distribution). Lorsque vous faites ce que vous avez suggéré, ou la réponse de Jimmy, cela ne fait qu'unusing
, et pas réellement l'installation dans monBUNDLE_PATH
dossier. Je n'ai pas pu comprendre cela, une aide?bundle config --delete local.GEM_NAME
bundle config disable_local_branch_check true
ou Bundler se plaindra de la branche. Soyez prudent avec cela, car les vérifications sont censées empêcher les validations incorrectes d'entrerGemfile.lock
. Documents ici: bundler.io/v1.12/git.htmlVous pouvez également référencer une gemme locale avec git si vous travaillez dessus.
Ensuite, si ça change, je cours
Mais je ne suis pas sûr que tout le monde doive exécuter ces deux étapes.
la source
bundle uninstall <gem> && bundle install
, pour chaque changement que vous souhaitez refléter sur votre applicationAfin d'utiliser le référentiel de gemmes local dans un projet Rails, suivez les étapes ci-dessous:
Vérifiez si votre dossier gem est un référentiel git (la commande est exécutée dans le dossier gem)
Obtenir le chemin du référentiel (la commande est exécutée dans le dossier gem)
Configuration d'un remplacement local pour l'application de rails
où
GEM_NAME
est le nom de votre bijou et/path/to/local/git/repository
est la sortie de la commande au point2
Dans votre application,
Gemfile
ajoutez la ligne suivante:La course
bundle install
devrait donner quelque chose comme ceci:où
GEM_NAME
est le nom de votre bijou et/path/to/local/git/repository
du point2
Enfin, exécutez
bundle list
, nongem list
et vous devriez voir quelque chose comme ceci:où
GEM_NAME
est le nom de ton bijouQuelques cas importants que j'observe en utilisant:
RubyMine
pas montrer les gemmes locales comme une bibliothèque externe. Plus d'informations sur le bug peuvent être trouvées ici et icistop/start
le serveur railsSi je change la
version
gemme,stopping/starting
le serveur Rails me donne une erreur. Afin de le réparer, je spécifie la version gem dans l'application railsGemfile
comme ceci:la source
Vous pouvez référencer des gemmes avec source:
source: 'https://source.com', git repository (:github => 'git/url')
et avec chemin local:path => '.../path/gem_name'
.Vous pouvez en savoir plus sur Gemfiles et comment les utiliser dans cet article.
la source
Si vous voulez aussi la branche:
la source
Only gems with a git source can specify a branch.