Búsqueda de sitios web

typescript - ¿Por qué estoy recibiendo errores de "miembro no exportado" al intentar actualizar Angular?


El problema

Estoy tratando de actualizar de Angular V9 a V11 y estoy teniendo bastantes problemas con los siguientes errores

El espacio de nombres node_module/@angular/core/core no tiene un miembro exportado ɵɵFactoryDeclaration El espacio de nombres node_module/@angular/core/core no tiene un miembro exportado ɵɵInjectorDeclaration El espacio de nombres node_module/@angular/core/core no tiene un miembro exportado ɵɵNgModuleDeclaration El espacio de nombres node_module/@angular/core/core no tiene un miembro exportado ɵɵɵComponentDeclaration

pero no estoy completamente seguro de lo que significa y cómo podría solucionarlo.

Lo que intenté

He mirado un problema similar: Ng serve arroja @angular/core/core no tiene un miembro exportado 'eeFactoryDef', que era el único rastro que pude encontrar de este problema, pero realmente no me ha ayudado.

Intenté borrar toda mi carpeta node_modules y reinstalar las dependencias de npm con npm i. También intenté npm ci. También intenté agregar

      "@angular/core/*": [
        "./node_modules/@angular/core/*"
      ]

O

      "@angular/*": [
        "./node_modules/@angular/*"
      ]

a mi tsconfig.json, pero eso tampoco ayudó.

Lo que creo que es el problema

No tengo ni idea sobre esto, pero creo que algo está mal con las rutas de mis dependencias de NPM, ya que hace referencia a @angular/core/core, pero no hay tal carpeta en mi node_modules.

Si voy al archivo node_modules/@angular/core/core.d.ts, que creo que es la ruta /core/core, aunque no estoy seguro de esto, entonces veo el mismo error allí también, lo cual me confunde aún más porque pensaba que el problema estaría entre Angular y las dependencias, pero no dentro de Angular mismo.

Package.json

{
  "name": "WorthaShot",
  "version": "0.0.3",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "build:prod": "ng build --prod",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "~12.0.0-next.7",
    "@angular/cdk": "^11.2.7",
    "@angular/common": "~12.0.0-next.7",
    "@angular/compiler": "~12.0.0-next.7",
    "@angular/core": "~11.2.8",
    "@angular/fire": "^6.1.4",
    "@angular/flex-layout": "^10.0.0-beta.32",
    "@angular/forms": "~12.0.0-next.7",
    "@angular/material": "^11.2.7",
    "@angular/platform-browser": "~12.0.0-next.7",
    "@angular/platform-browser-dynamic": "~12.0.0-next.7",
    "@angular/router": "~12.0.0-next.7",
    "@angular/service-worker": "~12.0.0-next.7",
    "@fortawesome/angular-fontawesome": "^0.8.2",
    "@fortawesome/fontawesome-common-types": "^0.2.35",
    "@fortawesome/fontawesome-svg-core": "^1.2.35",
    "@fortawesome/free-brands-svg-icons": "^5.15.3",
    "@fortawesome/free-solid-svg-icons": "^5.15.3",
    "@ngbmodule/material-carousel": "^0.7.1",
    "@ngx-meta/core": "^9.0.0",
    "@ngx-translate/core": "^13.0.0",
    "@ngx-translate/http-loader": "^6.0.0",
    "firebase": "^8.3.2",
    "flag-icon-css": "^3.5.0",
    "guid-typescript": "^1.0.9",
    "ngx-color-picker": "^10.1.0",
    "ngx-image-compress": "^8.0.4",
    "ngx-markdown": "^10.1.1",
    "ngx-sharebuttons": "^8.0.5",
    "ngx-spinner": "^10.0.1",
    "ngx-toastr": "^13.2.1",
    "rxjs": "~6.6.7",
    "tslib": "^2.2.0",
    "zone.js": "~0.10.2"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.1102.7",
    "@angular/cli": "~11.2.7",
    "@angular/compiler-cli": "~12.0.0-next.7",
    "@angular/language-service": "~12.0.0-next.7",
    "@types/jasmine": "~3.6.0",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "^14.14.37",
    "codelyzer": "^6.0.1",
    "jasmine-core": "~3.6.0",
    "jasmine-spec-reporter": "~5.0.0",
    "karma": "~6.3.2",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage-istanbul-reporter": "~3.0.2",
    "karma-jasmine": "~4.0.0",
    "karma-jasmine-html-reporter": "^1.5.0",
    "protractor": "~7.0.0",
    "ts-node": "~8.10.2",
    "tslint": "~6.1.3",
    "typescript": "^4.2.3"
  }
}

¿Qué me estoy perdiendo o no entiendo aquí?

Respuesta #1

En caso de que estés enfrentando el problema después de haber instalado primeng, por favor ten en cuenta que la última versión de primeng (12.0.0-rc.1) no funciona con la última versión de angular. Necesitas instalar una versión anterior de primeng, para mí la 11.4 funcionó perfectamente.

npm i [email 

Respuesta #2

Estaba recibiendo este error incluso sin una actualización. Lo obtenía con "@angular/core": "~9.1.1" con Node v12.16.2 y npm 4.0.2 . Ocurría con los componentes de primeNg. Actualicé a node: '14.17.0' y npm a npm: '6.14.13', creé una nueva aplicación de angular, reinstalé todas las dependencias incluyendo primeNg, añadí todo tu código del proyecto actual, recompilé y el error desapareció.

Artículos relacionados