Я бы хотел, чтобы Bundler загрузил локальный драгоценный камень. Есть ли возможность для этого? Или мне нужно переместить папку gem в каталог .bundle?
Я считаю, что вы можете это сделать:
gem "foo", :path => "/path/to/foo"
В дополнение к указанию пути (как упоминал Джимми) вы также можете заставить Bundler использовать локальную жемчужину для вашей среды только с помощью следующей опции конфигурации:
$ bundle config local.GEM_NAME /path/to/local/git/repository
Это очень полезно, если вы разрабатываете два драгоценных камня или драгоценный камень и приложение для рельсов бок о бок.
Обратите внимание, что это работает только тогда, когда вы уже используете git для своей зависимости, например:
# In Gemfile
gem 'rack', :github => 'rack/rack', :branch => 'master'
# In your terminal
$ bundle config local.rack ~/Work/git/rack
Как видно на документах.
BUNDLE_PATH
( BUNDLE_PATH
пакета для распространения). Делая то, что вы предложили, или ответ Джимми, он только using
, а не фактически устанавливает в мою папку BUNDLE_PATH
. Я не смог понять это, любая помощь?
Вы также можете ссылаться на локальный жемчуг с помощью git, если вы работаете над ним.
gem 'foo',
:git => '/Path/to/local/git/repo',
:branch => 'my-feature-branch'
Затем, если он изменится, я запустил
bundle exec gem uninstall foo
bundle update foo
Но я не уверен, что каждый должен выполнить эти два шага.
bundle uninstall <gem> && bundle install
, для каждого изменения, которое вы хотите отразить в своем приложении
Чтобы использовать локальный репозиторий gem в проекте Rails, выполните следующие действия:
Проверьте, является ли ваша папка gem репозиторием git (команда выполняется в папке gem)
git rev-parse --is-inside-work-tree
Получение пути репозитория (команда выполняется в папке gem)
git rev-parse --show-toplevel
Настройка локального переопределения для приложения rails
bundle config local.GEM_NAME /path/to/local/git/repository
где GEM_NAME
- имя вашего драгоценного камня, а /path/to/local/git/repository
- результат команды в точке 2
В приложении Gemfile
добавьте следующую строку:
gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
Запуск bundle install
должен дать что-то вроде этого:
Using GEM_NAME (0.0.1) from git://github.com/GEM_NAME/GEM_NAME.git (at /path/to/local/git/repository)
где GEM_NAME
- имя вашего драгоценного камня и /path/to/local/git/repository
из точки 2
Наконец, запустите bundle list
, а не gem list
, и вы увидите что-то вроде этого:
GEM_NAME (0.0.1 5a68b88)
где GEM_NAME
- имя вашего драгоценного камня
Несколько важных случаев, которые я наблюдаю, используя:
Rails 4.0.2
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Ubuntu 13.10
RubyMine 6.0.3
RubyMine
не показывает локальные драгоценные камни как внешнюю библиотеку. Более подробную информацию об ошибке можно найти здесь и здесьstop/start
сервер railsЕсли я изменяю version
драгоценного камня, stopping/starting
сервер Rails дает мне ошибку. Чтобы исправить это, я указываю версию gem в приложении rails Gemfile
следующим образом:
gem 'GEM_NAME', '0.0.2', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
Если вам нужна ветка:
gem 'foo', path: "point/to/your/path", branch: "branch-name"