ruby on rails - instalar - Cómo encontrar gemas sin usar en mi Gemfile
ruby bundle install windows (5)
Cualquier gema debe considerarse para su eliminación si todas las pruebas pasan en su ausencia.
Suponiendo que tenga una buena cobertura de pruebas, especialmente pruebas funcionales de alto nivel, podría escribir un script para eliminar una gema de forma selectiva a la vez. es decir, ejecute todas sus pruebas N veces, donde N es el número de gemas en su Gemfile y cada prueba tiene una gema que falta. Eso ayudará a eliminar las gemas que no tiran de su peso.
Cómo encontrar gemas sin usar en mi Gemfile, para que pueda limpiar las referencias que ya no se usan.
Dudo si hay una forma automatizada de encontrar gemas sin usar en el Gemfile.
Para alguien que haya desarrollado la aplicación a lo largo del tiempo, debería ser fácil identificar manualmente las gemas que se descartaron en el camino por alguna razón u otra.
Para una aplicación heredada heredada de otra persona, es una tarea muy difícil identificar manualmente las gemas no utilizadas. Si existe una cobertura de prueba completa para el sistema, ayudaría a eliminar las gemas no utilizadas por prueba y error, al tiempo que se asegura de que las pruebas se aprueben en cada cambio en el Gemfile.
Existe el comando bundle clean --force
para eliminar gemas fuera de las definiciones Gemfile.lock
.
Ver bundle-clean .
Puede usar la gema gem_bench para analizar su Gemfile e identificar qué gemas no necesitan ser requeridas en el momento del arranque. A partir de ahí solo se requiere un poco de análisis para determinar qué gemas se pueden eliminar por completo.
Para generar una lista de gemas que se pueden eliminar del tiempo de arranque:
- Agrega
gem ''gem_bench'', :group => :console
a tu Gemfile. - Ejecutar
bundle install
- Ejecutar
bundle exec rails console
con el siguiente comando: -
a = GemBench.check({verbose: true})
Use el tiempo de acceso a los archivos de linux para ver qué se está utilizando realmente.
Esto requiere:
- gemas del proyecto aisladas en un gemset de rvm
gemas instaladas en una partición montada con la opción atime (strictatime en ubuntu 12.04):
sudo mount -o remount, strictatime /
cobertura de prueba completa (es decir, confiaremos en las ejecuciones de prueba para actualizar los tiempos de acceso a los archivos)
Tenga en cuenta la hora y ejecute sus pruebas. Luego, desde tu gemdir, haz:
ls --time-style long-iso -ltud1 $PWD/*/lib/** | grep "21:44" | sed s/.*gems.// | sed s/.lib.*// | sort -u
Cambia las 21:44 a cualquier hora en que ejecutes las pruebas.