Jawaban:
Saya yakin Anda bisa melakukan ini:
gem "foo", path: "/path/to/foo"
spring stop
lihat apakah memang itu masalahnya.
Selain menentukan jalur (seperti yang disebutkan Jimmy), Anda juga dapat memaksa Bundler untuk menggunakan permata lokal untuk lingkungan Anda hanya dengan menggunakan opsi konfigurasi berikut:
$ bundle config local.GEM_NAME /path/to/local/git/repository
Ini sangat membantu jika Anda mengembangkan dua permata atau permata dan aplikasi rel berdampingan.
Perhatikan bahwa ini hanya berfungsi ketika Anda sudah menggunakan git untuk ketergantungan Anda, misalnya:
# In Gemfile
gem 'rack', :github => 'rack/rack', :branch => 'master'
# In your terminal
$ bundle config local.rack ~/Work/git/rack
Seperti yang terlihat pada dokumen .
BUNDLE_PATH
(membangun paket untuk distribusi). Ketika melakukan apa yang Anda sarankan, atau jawaban Jimmy, itu hanya melakukan using
, dan tidak benar-benar menginstal ke BUNDLE_PATH
folder saya . Saya tidak dapat menemukan ini, ada bantuan?
bundle config --delete local.GEM_NAME
bundle config disable_local_branch_check true
atau Bundler akan mengeluh tentang cabang. Berhati-hatilah dengan ini, karena cek seharusnya menghentikan komitmen yang salah Gemfile.lock
. Documents di sini: bundler.io/v1.12/git.html
Anda juga dapat mereferensikan permata lokal dengan git jika Anda sedang mengusahakannya.
gem 'foo',
:git => '/Path/to/local/git/repo',
:branch => 'my-feature-branch'
Kemudian, jika itu berubah saya jalankan
bundle exec gem uninstall foo
bundle update foo
Tetapi saya tidak yakin semua orang perlu menjalankan dua langkah ini.
bundle uninstall <gem> && bundle install
, untuk setiap perubahan yang Anda inginkan tercermin pada aplikasi Anda
Untuk menggunakan repositori permata lokal dalam proyek Rails, ikuti langkah-langkah di bawah ini:
Periksa apakah folder gem Anda adalah repositori git (perintah dijalankan di folder gem)
git rev-parse --is-inside-work-tree
Mendapatkan jalur repositori (perintah dijalankan di folder gem)
git rev-parse --show-toplevel
Menyiapkan override lokal untuk aplikasi rel
bundle config local.GEM_NAME /path/to/local/git/repository
di mana GEM_NAME
nama permata Anda dan /path/to/local/git/repository
merupakan output dari perintah in point2
Di aplikasi Anda Gemfile
tambahkan baris berikut:
gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
Berlari bundle install
harus memberikan sesuatu seperti ini:
Using GEM_NAME (0.0.1) from git://github.com/GEM_NAME/GEM_NAME.git (at /path/to/local/git/repository)
di mana GEM_NAME
nama permata Anda dan /path/to/local/git/repository
dari titik2
Akhirnya, jalankan bundle list
, tidak gem list
dan Anda akan melihat sesuatu seperti ini:
GEM_NAME (0.0.1 5a68b88)
di mana GEM_NAME
nama permata Anda
Beberapa kasus penting yang saya amati menggunakan:
Rails 4.0.2
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Ubuntu 13.10
RubyMine 6.0.3
RubyMine
tidak menampilkan permata lokal sebagai perpustakaan eksternal. Informasi lebih lanjut tentang bug dapat ditemukan di sini dan di sinistop/start
server railsJika saya mengubah version
permata, stopping/starting
server Rails memberi saya kesalahan. Untuk memperbaikinya, saya menentukan versi permata di aplikasi rel Gemfile
seperti ini:
gem 'GEM_NAME', '0.0.2', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
Anda dapat mereferensikan permata dengan sumber: source: 'https://source.com', git repository (:github => 'git/url')
dan dengan jalur lokal :path => '.../path/gem_name'
.
Anda dapat mempelajari lebih lanjut tentang Gemfiles dan cara menggunakannya dalam artikel ini.