Pertanyaan rel bundel bersih


Setelah memperbarui bundel, Anda akan memiliki beberapa permata yang mungkin usang - karena versi yang lebih baru dari permata tersebut telah dipasang. Tidak ada perintah seperti itu di bawah bundle executable i.e. bundle clean. Bagaimana cara menyingkirkan permata yang sudah usang ini?

Ini adalah upaya untuk mengurangi ukuran siput di aplikasi rel saya.


75
2017-10-26 15:36


asal


Jawaban:


Jika Anda menggunakan Bundler 1.1 atau yang lebih baru, Anda dapat menggunakannya bundle clean, seperti yang Anda bayangkan, Anda bisa. Ini berlebihan jika Anda menggunakan bundle install --path (Bundler mengelola lokasi yang Anda tentukan dengan --path, jadi bertanggung jawab untuk menghapus permata yang kedaluwarsa), tetapi jika Anda telah menggunakan Bundler untuk menginstal permata sebagai permata sistem, maka bundle clean --force akan menghapus permata sistem apa pun yang tidak diperlukan oleh Gemfile Anda. Peringatan yang sangat jelas: jangan lakukan ini jika Anda memiliki aplikasi lain yang bergantung pada permata sistem yang tidak ada dalam Gemfile Anda!

Pat Shaughnessy memiliki deskripsi yang bagus bundle clean dan tambahan baru lainnya dalam bundel 1.1.


118
2018-04-17 11:47



Jika Anda menggunakan RVM, Anda dapat menggunakannya rvm gemset empty untuk gemset saat ini - perintah ini akan menghapus semua permata yang dipasang ke gemset saat ini (gemset itu sendiri akan tetap di tempatnya). Lalu lari bundle install untuk menginstal versi permata yang sebenarnya. Juga pastikan bahwa Anda tidak menghapus permata umum seperti rake, bundler dan seterusnya selama rvm gemset empty (jika itu terjadi maka instal secara manual melalui gem install sebelum bundle install).


34
2018-01-25 22:23



Jika Anda menggunakan RVM, Anda dapat menginstal permata Anda permata. Dengan cara itu ketika Anda ingin melakukan pembersihan penuh Anda dapat menghapus gemset, yang pada gilirannya menghapus semua permata yang terpasang di dalamnya. Pilihan Anda yang lain adalah dengan hanya menghapus permata yang tidak terpakai dan menjalankannya kembali bundle install perintah.

Karena bundler dimaksudkan untuk menjadi alat versi gem proyek-per-proyek, ia tidak menyediakan bundle clean perintah. Melakukan hal itu berarti kemungkinan menghapus permata yang terkait dengan proyek lain juga, yang tidak diinginkan. Itu berarti bahwa bundler mungkin adalah alat yang salah yang digunakan untuk mengelola direktori permata Anda. Rekomendasi pribadi saya adalah menggunakan permata RVM ke kotak pasir permata Anda dalam proyek-proyek tertentu atau versi ruby.


21
2017-10-26 16:03



Jujur, saya punya masalah dengan bundel dependensi bundel dan cara terbaik untuk pergi adalah rm -rf .bundle. Selamatkan sakit kepala dan cukup gunakan palu.


10
2017-12-12 14:44



Saya berasumsi Anda menginstal permata ke dalam vendor/bundle? Jika demikian, mengapa tidak menghapus semua permata dan melakukan bersih bundle install?


1
2017-10-26 16:06



Ketika mencari jawaban untuk pertanyaan yang sama saya temui gem_unused.
Anda mungkin juga ingin membaca artikel ini: http://chill.manilla.com/2012/12/31/clean-up-your-dirty-gemsets/
Kode sumber tersedia di GitHub: https://github.com/apolzon/gem_unused


1
2018-02-07 23:26



Hapus saja permata usang dari Gemfile Anda. Jika Anda berbicara tentang Heroku (Anda tidak menyebutkan itu) maka siput tersebut dikompilasi setiap rilis baru, hanya menggunakan konten saat ini dari file itu.


0
2017-10-26 16:10