Cómo actualizar Angular CLI a la última versión

102

Usando ng --versiontengo:

@ angular / cli: 1.0.0

que no es la última versión disponible.

Como tengo Angular CLI instalado globalmente en mi sistema, para actualizarlo probé:

npm update angular-cli -g

Pero no funciona, porque se queda en la versión 1.0.0.

Francesco Borzi
fuente

Respuestas:

830

Después de leer algunos problemas informados en el repositorio de GitHub, encontré la solución.

Para actualizar el paquete angular-cli instalado globalmente en su sistema, debe ejecutar:

npm uninstall -g @angular-cli
npm install -g @angular/cli@latest

Dependiendo de su sistema, es posible que deba anteponer los comandos anteriores con sudo.

Además, lo más probable es que también desee actualizar la versión de su proyecto local, porque dentro de su directorio de proyecto se seleccionará con mayor prioridad que la global:

rm -rf node_modules
npm uninstall --save-dev @angular-cli
npm install --save-dev @angular/cli@latest
npm install

gracias grizzm0 por señalar esto en GitHub .

Después de actualizar su CLI, probablemente también desee actualizar su versión Angular .

Nota : si está actualizando a Angular CLI 6+ desde una versión anterior, es posible que deba leer esto .

Editar : Además, si todavía estaba en una versión 1.x de la cli, debe convertir su angular-cli.jsona angular.json, lo que puede hacer con el siguiente comando:

ng update @angular/cli --from=1.7.4 --migrate-only

(verifique esto para más detalles).

Francesco Borzi
fuente
3
Alerta pedante: puede encontrar más detalles sobre los cambios entre versiones en la pestaña Lanzamientos en GitHub. Enlace: github.com/angular/angular-cli/releases
Stuti Verma
14
Actualización 2017 (npm @ 5): si realmente necesita limpiar su caché: "npm cache clean --force"
Neyt
2
¿Por qué desinstalar angular-cli y no todo @ angular / cli?
YASH DAVE
4
Ejecutar el comando npm cache clean arroja el error 'A partir de npm @ 5, la caché npm se autocura de problemas de corrupción y se garantiza que los datos extraídos de la caché son válidos. Si desea asegurarse de que todo sea coherente, utilice "npm cache verify" en su lugar. "si quieres forzar, puedes agregar --force
Pushkal Boganatham
1
@PushkalBoganatham como dijo @neyt, debe usar la --forcebandera
svict4
149

ng6 + -> 7.0

Actualizar RxJS (depende de RxJS 6.3)

npm install -g rxjs-tslint
rxjs-5-to-6-migrate -p src/tsconfig.app.json

Eliminar rxjs-compat

Luego actualice los paquetes principales y Cli:

ng update @angular/cli @angular/core

(Opcional: actualice Node.js a la versión 10 que es compatible con NG7)

ng6 + (Cli 6.0+) : presenta comandos simplificados

Primero, actualice su Cli

npm install -g @angular/cli
npm install @angular/cli
ng update @angular/cli

Luego, actualice sus paquetes principales

ng update @angular/core

Si usa RxJS, ejecute

ng update rxjs

Actualizará RxJS a la versión 6 e instalará el rxjs-compatpaquete debajo del capó.

Si se encuentra con errores de compilación, intente una instalación manual de:

npm i rxjs-compat
npm i @angular-devkit/build-angular

Por último, verifique su versión

ng v

Nota sobre la construcción de producción:

ng6 ya no se usa intlenpolyfills.ts

//remove them to avoid errors
import 'intl';
import 'intl/locale-data/jsonp/en';

ng5 + (Cli 1.5+)

npm install @angular/{animations,common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router}@next [email protected] rxjs@'^5.5.2'
npm install [email protected] --save-exact

Nota:

  1. La versión de Typecript compatible para Cli 1.6 en el momento de la escritura es hasta la 2.5.3.
  2. El uso de @next actualiza el paquete a beta, si está disponible. Utilice @latest para obtener la última versión no beta.

Después de actualizar tanto el paquete global como el local, borre la caché para evitar errores:

npm cache verify (recommended)
npm cache clean (for older npm versions)

Aquí están las referencias oficiales:

  1. Actualizar el Cli
  2. Actualización del paquete básico de paquetes principales .
Estudio Pageii
fuente
4
npm cache clean --force Realmente me ayudó
Pini Cheyni
1
¿Por qué, oh, por qué esta parte no está en las notas de la versión?
Drenai
¿Puede confirmar lo que dijo sobre la desaprobación de RxJS 6? Dondequiera que mire, parece que v6 es la última versión estable github.com/ReactiveX/rxjs rxjs-dev.firebaseapp.com
Joey Gough
1
@JoeyGough ¡buena captura! Cg7 depende de rxjs 6.3. Gracias por tu comentario. ref: github.com/angular/angular/blob/master/…
Pageii Studio
107

simplemente puedes usar

npm install -g angular-cli - si es tu primera vez

npm install -g @angular/cli@latest - si ya está instalado, entonces para actualizar

SamYah
fuente
37

El poderoso comando instala y reemplaza el último paquete.

Tuve un problema similar. Lo arreglé.

 npm install -g @angular/cli@latest

y

npm install --save-dev @angular/cli@latest

ingrese la descripción de la imagen aquí

BehrouzMoslem
fuente
esto funcionará para una CLI Angular local, verifique mi respuesta para actualizar la global
Francesco Borzi
actualicé mi cli global
Rahmathullah M
35

Este comando funciona bien:

npm upgrade -g @angular/cli
wdavilaneto
fuente
22

El siguiente enfoque funcionó para mí:

npm uninstall -g @angular/cli

luego

npm cache verify

luego

npm install -g @angular/cli@latest

Trabajo en Windows 10, a veces tuve que usar: npm cache clean --forcetambién. No es necesario que lo haga si no tiene ningún problema durante la instalación.

Enayat
fuente
2
No es necesario especificarlo @latest, ya que el último es el predeterminado.
Ambroise Rabier
Si esta solución no funciona para usted: stackoverflow.com/a/58678941/8718377
veben
17

Si tiene dificultades para administrar su versión de CLI global , es mejor usar NVM: MAC , Windows .

Para actualizar la CLI local en su proyecto Angular, siga estos pasos:

A partir de CLI v6 , puede ejecutarlo ng updatepara que sus dependencias se actualicen automáticamente a una nueva versión.

ng update @angular/cli

A ng updateveces, es posible que desee agregar una --forcebandera.

También puede pasar la --allbandera para actualizar todos los paquetes al mismo tiempo.

ng update --all --force

Si solo desea migrar la CLI, simplemente ejecute esto:

ng update @angular/cli --migrateOnly

También puede pasar flag --from=from- versión desde la que migrar, por ejemplo --from=1.7.4. Esta marca solo está disponible con un único paquete que se está actualizando y solo en la migración.

Una vez realizada la actualización, asegúrese de que la versión de mecanografiado que instaló sea compatible con su versión angular actual; de lo contrario, es posible que deba degradar la versión de mecanografiado. También tenga en cuenta que, por lo general, la última versión de angular no es compatible con la última versión del mecanografiado.

Ver Angular CLI / Angular / NodeJS / Typescriptversiones de compatibilidad aquí

Consulte también esta guía Actualización de sus proyectos Angular y update.angular.io


ANTIGUA RESPUESTA:
Todo lo que necesita hacer es diferenciar con angular-cli-diff y aplicar los cambios en su proyecto actual.

Estos son los pasos:

  1. Digamos que pasas de 1.4. a 1.5, luego haz https://github.com/cexbrayat/angular-cli-diff/compare/1.4.0...1.5.0
  2. haga clic en la File changedpestaña
  3. Aplica los cambios a tu proyecto actual.
  4. npm install / yarn
  5. Pruebe todo npm scripts( más detalles aquí: https://stackoverflow.com/a/45431592/415078 )
kuncevic.dev
fuente
14

Además de la respuesta de @ShinDarth .

Hice lo que dijo, pero mi paquete no actualizó la versión angular, y sé que se trata de esta publicación angular-cli, pero creo que esto también puede ayudar.

  • así que después de hacer lo que @ShinDarth dijo arriba, para arreglar mi versión angular tuve que crear un nuevo proyecto con -ng new projectnameeso generó un paquete.
  • copie el nuevo paquete, luego pegue el nuevo paquete en todos los paquetes de proyectos que necesiten actualizarse (recuerde agregar las dependencias que tenía y cambiar el nombre en la primera línea) o simplemente puede cambiar las versiones manualmente sin copiar y pegar.
  • luego corre -npm install.

Ahora mi ng serveestá funcionando de nuevo, tal vez haya una mejor manera de hacer todo eso, si alguien lo sabe, por favor comparta, porque esto es una molestia para todos los proyectos que necesitan actualizarse.

Leonardo Souza Paiva
fuente
parece más una adición a mi respuesta que una respuesta, así que tal vez pueda moverlo como un comentario debajo de mi respuesta.
Francesco Borzi
7
sry, tienes razón, pero necesito 50 de reputación para hacer un comentario a tu respuesta.
Leonardo Souza Paiva
9

Para actualizar Angular CLI a una nueva versión, debe actualizar tanto el paquete global como el paquete local de su proyecto.

Paquete global:

npm uninstall -g @angular/cli
npm cache clean
# if npm version is > 5 then use `npm cache verify` to avoid errors (or to avoid using --force)
npm install -g @angular/cli@latest

Paquete de proyecto local:

rm -rf node_modules dist # use rmdir /S/Q node_modules dist in Windows Command Prompt; use rm -r -fo node_modules,dist in Windows PowerShell
npm install --save-dev @angular/cli@latest
npm install

Fuente: Github

Hasan Fathi
fuente
3

En mi caso, instalé angular-cli localmente usando npm install --save-dev angular-cli. Entonces, cuando uso el comando npm install -g @ angular / cli, genera un error que dice que "Su versión global de CLI angular (1.7.3) es mayor que su versión local (1.4.9)" . Tenga en cuenta que angular-cli, @ angular / cli y @ angular / cli @ latest son dos cli diferentes. Lo que resuelve esto es desinstalar todos los cli y luego instalar el último cli angular usando npm install -g @ angular / cli @ latest

ARKhan
fuente