javascript - start - que es bower io
¿Cómo desinstalas todos tus paquetes de bower? (8)
Al adaptar la respuesta de Jumar Polanco para utilizarlo en Powershell, es posible desinstalar mediante programación los componentes del bower de la siguiente manera:
En la interfaz de Powershell, navegue a la ubicación donde se encuentran bower.json y la carpeta bower_components. Usualmente es la carpeta de la aplicación raíz.
Entonces puedes ejecutar:
foreach($package in ls bower_components){bower uninstall $package}
Dependiendo de cuáles sean las dependencias de los paquetes, se puede requerir que presten más atención al proceso, ya que pueden surgir algunas solicitudes que requieren una entrada adicional (Y / n) para continuar el proceso (como conflictos de dependencia).
Algunas veces es útil reconstruir un sitio completo y forzar a bower a reinstalar nuevas versiones de todos los paquetes en bower.json.
Sin embargo, no parece haber ninguna forma de hacerlo:
Intento # 1:
$ bower uninstall
bower not-installed 0
No, eso solo funciona paquete por paquete, aunque una ''instalación de bower'' limpia usa bower.json.
Intento # 2:
$ bower install -f -l 0
$
No, a pesar de ''-f'', esto no hace absolutamente nada si se cumplen las dependencias.
Intento # 3:
$ rm -r bower_components
$
! Ah victoria! ... espera, ¿qué es esto?
rm: bower_components: No such file or directory
Oh, maldición, hay un .bowrc en este proyecto que establece el directorio para instalar las cosas.
Mi terrible solución actual:
Ejecute una secuencia de comandos personalizada que:
- Parse .bowerrc if one exists
- Load the directory if one is specified in the json block
- If the directory currently exists...
- ...recursively delete the directory.
Funciona, supongo, pero es bastante molesto tener que configurar varias veces.
¿Me estoy perdiendo de algo?
¿No hay simplemente un simple comando de bower para eliminar los módulos locales instalados?
Parece una funcionalidad realmente básica que esperaría que la desinstalación de bower hiciera.
(Esta no es realmente una pregunta muy javascript, pero felizmente aceptaré algo que se enganche en el módulo de bower de alguna manera para que esto suceda en un simple script de nodo)
Contexto
Editar: Si quiere ''motivación'' para tal tarea, es esta: tenemos un servidor jenkins que construye nuestros proyectos y ejecuta pruebas. Sin embargo, periódicamente falla sin una razón obvia; Investigar, casi siempre es porque Jenkins está usando una copia previa del repositorio con solo un git-pull para actualizar a la versión más reciente antes de compilar y ejecutar pruebas; como resultado, el directorio anterior bower_components está allí y está lleno de copias en caché de los diversos componentes.
Aquí hay algunos ejemplos de cosas que son # @ $ @ # $ ''d y requieren que bower se ejecute nuevamente como una instalación forzada:
1) Algunos idiotas (> _> fitvids) eliminan la versión etiquetada anterior de un proyecto.
2) Algún proyecto ha caído de bower / movió su página github
3) Algunos proyectos (> _> jquery) han cambiado la forma en que se presentan los archivos en una revisión de versión no principal.
Me doy cuenta de que la solución ''correcta'' para este problema es: reparar jenkins, por lo que crea un nuevo directorio temporal para cada compilación. ... pero eso no está bajo mi control.
Entonces, como un paso de compilación, necesito automatizar una forma de eliminar los componentes del enramado y forzarlos a que todos sean reinstalados; ya sea como una tarea gruñona (parte de la compilación) o como un paso de compilación de jenkins. Sin embargo, recuerde de (3) que nuestros proyectos usan .bowerrc, por lo que no es tan simple como simplemente eliminar una carpeta.
Sería genial si pudiera desinstalar todos los componentes existentes de la glorieta como un paso previo a la construcción para que esto funcione.
Entonces ... volvamos a la pregunta: ¿se puede hacer esto con Bower?
Desinstalar paquetes
Para eliminar un paquete, puede usar el comando de desinstalación seguido del nombre del paquete que desea eliminar.
bower uninstall
Es posible eliminar múltiples paquetes a la vez al enumerar los nombres de los paquetes.
bower uninstall jquery modernizr sass-bootstrap
En realidad, hago algo un poco complicado pero funciona para mí:
-
for package in $(ls your_bower_components_folder); do bower uninstall "$package"; done;
-
bower install
Esto es lo que terminó trabajando para mí a través del indicador de Windows cmd:
forfiles /p ./bower_components /c "cmd /c cd .. && bower uninstall @fname"
He estado usando nombom
para hacer esto (como nombom
adicional, también vuelve a instalar sus paquetes npm desde cero):
No sé qué herramientas de compilación grunt-bowercopy , pero si incluye Grunt con grunt-bowercopy , podrías usar la opción de clean
. Quita la carpeta bower_components (o lo que sea que hayas configurado para usar) después de copiar los archivos necesarios.
Idealmente, preferiría algo que no requiriera que volviera a descargar todas las dependencias con cada compilación, sino solo aquellas en las que al hacer una instalación nueva encontraría una versión más nueva.
Estoy buscando una mejor solución para esto también, así que lo actualizaré si encuentro uno.
qué tal si
- editar el bower.json
- ''rm -Rf bower_components / *''
- bower instalar
Estaba tratando de actualizar al polímero 0.2.4 desde 0.2.3. Parece que no puedo encontrar una forma rápida de desinstalar un conjunto de dependencias. Así que simplemente eliminé manualmente esos polymer * dir en bower_components. Pero por alguna razón, Bower seguía recordando que tenía el evento 0.2.3 instalado con bower.json modificado. A ''rm -Rf bower_component / *'' parece hacer los trucos.
Respuesta actualizada
Si está intentando actualizar todos sus paquetes, use
$ bower update
Respuesta original
Vaya a su archivo bower.json y elimine todos los componentes o bibliotecas que desee desinstalar de devDependencies.
Después de haber eliminado los que desea, ejecute -
$ bower prune
Empezar con -
"devDependencies": { "angular": "~1.2.15", "angular-ui-router": "~0.2.10", "moment": "~2.5.1" }
eliminar referencias angulares del archivo -
"devDependencies": { "moment": "~2.5.1" }
ejecutar
$ bower prune
ver cómo se desinstalan sus dependencias angulares