Я хочу, чтобы Bundler загрузил местный самоцвет. Есть ли для этого возможность? Или мне нужно переместить папку драгоценных камней в каталог .bundle?
Как я могу указать локальный гем в моем Gemfile?
Ответы (6)
Я считаю, что вы можете это сделать:
gem "foo", path: "/path/to/foo"
spring stop
проверить, действительно ли это проблема.
- person Jason R; 10.09.2016
branch
для использования при использовании path
, поэтому при этом убедитесь, что правильная ветка выбрана в локальной файловой системе.
- person Joshua Pinter; 22.02.2019
Помимо указания пути (как упомянул Джимми), вы также можете заставить 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
(создание пакета для распространения). При выполнении того, что вы предложили, или ответа Джимми, он выполняет только using
, а не фактически устанавливает в мою папку BUNDLE_PATH
. Я не смог понять это, есть помощь?
- person Automatico; 13.02.2014
bundle config --delete local.GEM_NAME
- person alxndr; 30.11.2014
bundle config disable_local_branch_check true
, иначе Bundler будет жаловаться на ветку. Однако будьте осторожны, поскольку проверки должны предотвращать попадание некорректных коммитов в Gemfile.lock
. Документы здесь: bundler.io/v1.12/git.html
- person Leo; 31.05.2016
bundle
, должен быть корневым каталогом исходного кода другого драгоценного камня.
- person Benjineer; 19.11.2019
Вы также можете ссылаться на локальный гем с помощью 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
для каждого изменения, которое вы хотите отразить в своем приложении.
- person Ramses; 03.11.2017
Чтобы использовать локальный репозиторий гемов в проекте 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
не показывает локальные драгоценные камни как внешнюю библиотеку. Дополнительную информацию об ошибке можно найти здесь и здесь - Когда я что-то меняю в локальном геме, для загрузки в приложение rails я должен
stop/start
сервер rails Если я меняю
version
гема,stopping/starting
сервер Rails выдает мне ошибку. Чтобы исправить это, я указываю версию гема в приложении railsGemfile
следующим образом:gem 'GEM_NAME', '0.0.2', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
Вы можете ссылаться на драгоценные камни с источником:
source: 'https://source.com', git repository (:github => 'git/url')
и с локальным путем
:path => '.../path/gem_name'
.
Вы можете узнать больше о [Gemfiles и их использовании] (https://kolosek.com/rails-bundle-install-and-gemfile) в этой статье.
Если вам тоже нужна ветка:
gem 'foo', path: "point/to/your/path", branch: "branch-name"
Only gems with a git source can specify a branch.
- person KenB; 07.06.2019