Búsqueda de sitios web

Actualizar Angular 6 a 7 - advertencia de dependencias y error de TypeScript


Usé este enlace para actualizar mi frontend simple de Angular a Angular 7:

Actualizar a Angular 7

Mientras actualizaba, recibí varias advertencias para los archivos package.json y polyfills.ts:

UPDATE package.json (1313 bytes)
npm WARN @ngtools/[email  requires a peer of typescript@~2.4.0 || ~2.5.0 || ~2.6.0 || ~2.7.0 || ~2.8.0 || ~2.9.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email  requires a peer of @angular/compiler@>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email  requires a peer of @angular/core@>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email  requires a peer of @angular/platform-browser-dynamic@>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email  requires a peer of @angular/platform-browser@>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email  requires a peer of @angular/common@>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email  (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email : wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

added 69 packages, removed 4 packages, updated 16 packages and moved 2 packages in 43.395s
UPDATE package.json (1315 bytes)
UPDATE src/polyfills.ts (3165 bytes)
npm WARN [email  requires a peer of @angular/compiler@>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email  requires a peer of @angular/core@>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email  requires a peer of @angular/platform-browser-dynamic@>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email  requires a peer of @angular/platform-browser@>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email  requires a peer of @angular/common@>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email  (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email : wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

Y también tengo este error de TypeScript (3.0.1):

Error:Initialization error (angular 2 language service). Cannot read property 'CommandTypes' of undefined

¿Alguien puede sugerir una solución alternativa sobre cómo arreglar estas advertencias de dependencias y el error de TypeScript? ¿Necesito cambiar las dependencias manualmente? Si es así, necesitaría un ejemplo de cómo...

Respuesta #1

El problema es que no tienes la última versión de esos dos paquetes.

  1. Necesitas actualizar tu paquete Codelyzer a la última versión. ng update --all debería hacerlo, de lo contrario también puedes editar tu package.json manualmente.

Puedes ver aquí que la última versión (4.5.0) de este paquete ha sido hecha compatible con Angular 7, por lo que necesitas usarla en lugar de tu versión 4.2.1.

  1. Lo mismo ocurre con tu @ngtools/webpack, necesitas usar la última versión (ver aquí, es 7.0.2). Es probable que no tengas esta explícitamente en tu packages.json, así que puede que solo necesites hacer un npm cache clean -f antes de ejecutar ng update.

Si esto aún no funciona, te sugiero que elimines tu directorio node_modules, esto forzará a npm install a reconstruir todo a partir de las versiones más recientes en el repositorio, dado que hayas actualizado correctamente tu package.json (manual o mediante ng update).

Respuesta #2

¿Eliminaste tu antigua carpeta node_modules? si no, por favor elimínala y también elimina package-lock.json si está presente. limpia la caché de npm npm cache clean -f y intenta instalar todos los paquetes