Migración de Angular 6 -.angular-cli.json a angular.json

81

Actualicé mi proyecto a Angular 6 y todo salió bien, excepto la conversión del .angular-cli.jsonarchivo. De la guía que seguí, se dijo que esto lo convertirá automáticamente.

npm install -g @ angular / cli

npm install @ angular / cli

ng update @ angular / cli

Sin embargo, no fue el caso ya que todavía tengo el antiguo .angular-cli.json

¿Hay alguna forma de hacerlo de forma automática / manual?

Dinosaurio
fuente
Necesita cambiarle el nombre manualmente
Pardeep Jain
3
¿Seguiste esta guía ?
E. Sundin
No cambie el nombre del archivo. Se elimina y se vuelve a crear cuando sigues la guía. Si le cambia el nombre, siga la guía, no funcionará.
Kriil

Respuestas:

115

Lo más probable es que haya errores en uno de esos comandos. Para mí, tuve que ejecutar npm install -g @angular-devkit/coreprimero y luego ejecutar los comandos:

npm install -g @angular/cli

npm install @angular/cli

En la salida de la consola de npm install @angular/clidebería ver:

================================================================================
The Angular CLI configuration format has been changed, and your existing configuration can
be updated automatically by running the following command:

  ng update @angular/cli
================================================================================

Entonces, obviamente, deberías correr ng update @angular/clipara finalizar el proceso.

Consulte la Guía de actualización oficial para obtener detalles adicionales.

William Hampshire
fuente
2
Hubo un error con npm install @ angular / cli ng update, tuve que volver a ejecutarlo y funcionó :)
Dino
@WilliamHampshire: Seguí el mismo proceso, pero cuando ejecuto el comando npm install @ angular / cli, recibí el siguiente error. npm WARN @ angular-devkit / schematics @ 0.0.52 requiere un par de @ angular-devkit / core @ 0.0.29 pero ninguno está instalado. Debe instalar las dependencias de pares usted mismo. npm WARN @ schematics / angular @ 0.1.17 requiere un par de @ angular-devkit / core @ 0.0.29 pero ninguno está instalado. Debe instalar las dependencias de pares usted mismo. Npm WARN [email protected] requiere un par de ajv@^6.0.0 pero no hay ninguno instalado. Debe instalar las dependencias de pares usted mismo.
Abhilash Reddy
2
Lo que me faltaba era el @angular-devkit/corepaquete, instalarlo hizo el truco.
ColinM
64

puede actualizar automáticamente su angular-cli.jsonarchivo existente a angular.jsonarchivo utilizando el siguiente comando siempre que esté en v6.xx o superior de la herramienta de línea de comando angular cli.

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

En el comando anterior 1.7.4está la versión anterior de cli que estaba usando. La --migrate-onlybandera se asegura de que solo realizará una migración, pero no actualizará la versión instalada.

leer más: angular / cli-github

rgantla
fuente
Oye, probé varias opciones pero tus soluciones funcionaron. Mi angular-cli.json se convierte en angular.json. Pero recibí otro error cuando inicio mi aplicación: ng serve Error: ERROR in src / app / workflows / workflow-list / workflow-list.component.ts (441,4): error TS1128: Declaración o declaración esperada.
Abhilash Reddy
¡Finalmente esto es lo que funcionó para mí! Había probado tantas soluciones, incluidas todas las demás aquí, así como la guía oficial de actualización angular, pero cada vez que la ejecutaba ng update @angular/cli, nunca actualizaba angular-cli.json a angular.json. ¡Finalmente funcionó! ¡Muchas gracias!
Rohan
41

Intente ejecutar " ng update @ angular / cli " dos veces, actualizará angular-cli.json a angular.json

ACTUALIZAR:

si recibe errores como este:

ERROR: La actualización del comando especificado no es válida, para ver las opciones disponibles, consulte ng-help.

entonces necesitas ejecutar 2 comandos de la siguiente manera

  1. npm install --save-dev @ angular / cli @ latest.
  2. ng update @ angular / cli

esto creará automáticamente angular.json, eliminará .angular-cli.json y actualizará karma.conf.js, src / tsconfig.spec.json, package.json y tslint.json

ingrese la descripción de la imagen aquí

T. Shashwat
fuente
21

Estaba tratando de actualizar desde 5.2 -> 6.1 y me encontré con un problema en el que, después de ejecutar npm install @angular/cli@6seguido de ng update @angular/cli@6, (como se describe en https://update.angular.io/#5.2:6.1 ), package.jsonse estaba actualizando pero ninguno de los otros archivos como .angular-cli.jsonotsconfig.json eran, aunque no recibí ningún error. Intenté ejecutar el comando de actualización varias veces, pero esto no tuvo ningún efecto.

Terminé ejecutando los siguientes 3 comandos que funcionaron para mí:

npm install @angular/cli@6
ng update @angular/cli
ng update @angular/core@6

El único cambio real es el segundo comando. El documento dice que se ejecute, ng update @angular/cli@6pero eso no actualizaría ninguno de los archivos de configuración.

MacK
fuente
3

Para actualizar la versión de 5.2 a 6.0, seguí los siguientes pasos.

  • Instale el nodo 8 o superior.
  • hilo global add @ angular / cli.
  • añadir hilo @ angular / cli.
  • ng update @ angular / cli.
  • ng update @ angular / core.

    Nota: si, después de ejecutar el comando ng update @ angular / core , surge un problema de rango no válido , siga a continuación, simplemente reemplace la versión principal en package.json, automáticamente reemplazará la menor. Recurso: desea actualizar el proyecto de Angular v5 a Angular v6

      - npm uninstall -g angular-cli
      - npm cache clean or npm cache verify
      - npm install -g @angular/cli@next
      - then, replace lower versions to higher versions in package.json 
        file.
      - delete node modules folder.
      - run npm/yarn install.
    

Después de la instalación de npm , si obtiene un error de la ruta src / styles faltante, elimine las rutas dadas en el archivo angular.json en el bloque de activos de ["src / styles", "src / fonts", "src / images", "src / assets "," src / favicon.ico "] a [" assets "," favicon.ico "].

  • yarn global add rxjs-tslint (puede ser necesario).
  • rxjs-5-to-6-migrate -p src / tsconfig.app.json (puede ser necesario).
  • yarn install @ angular / material @ 6.0.0 (para actualizar paquetes de materiales).

=> ¡ Tenga en cuenta que nunca necesita cambiar el nombre de angular.cli.json a angular.json manualmente!

** no dude en preguntar si surgen más dudas.

Simran kaur
fuente
1

Siga estos pasos:

1) Actualice su CLI de Angular global y localmente (suponiendo que la última versión sea la 7)

2) Toma tu antiguo proyecto y ejecuta el siguiente comando

  • npm install @ angular / cli
  • ng update @ angular / cli

Después de ejecutar esto, ha actualizado todos sus paquetes angulares a la última versión.

3) Agregue este paquete ya que aún falta

npm install @ angular-devkit / core --save -dev

4) cree un nuevo proyecto con ng serve (última versión)

5) Cree un nuevo archivo vacío con el nombre angular.json y copie el contenido de angular.json del nuevo proyecto en él.

6) Actualice el nombre del proyecto en consecuencia en angular.json

7) Ejecute npm install

8) Ejecutar el servicio

9) Ahora está listo con la última versión de angular.

Seguí los pasos anteriores para migrar de angular2 a angular7.

Sourabh Ranka
fuente
En caso de que obtenga un error al ejecutar ng serve, verifique el error si es más probable que sean las entradas en angular.json, actualícelas en consecuencia. Para ex - nombre del proyecto,
rutas de
0

EN CASO DE:
No se pudo encontrar el archivo de espacio de trabajo local ('angular.json').
O
El comando de servicio debe ejecutarse en un proyecto angular, pero no se pudo encontrar una definición de proyecto.

Actualizar / degradar a la versión deseada (probé Angular 6, por ejemplo)

[sudo] npm install -g -f @angular/[email protected]

Actualizar el proyecto local

ng update @angular/[email protected]

Y estás listo para ir :)

ng serve
Bogdan Iudean
fuente
0

De hecho, tuve que realizar todos los cambios o guardarlos antes de poder ejecutar el comando para actualizar el cli como se muestra en esta captura de pantalla.

Hice estos comandos:

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

ng update@angular/cli

Y cometiendo los cambios entre estos dos. Ng servir

Tore Aurstad
fuente