Búsqueda de sitios web

typescript - Angular TypeError('readdirp: el argumento root debe ser una cadena.')


Tenía una aplicación Angular perfectamente funcional en mi portátil, luego decidí mover el backend para que fuera independiente, y desde entonces ng serve arroja el siguiente error. Parece que pasa la compilación bien, y luego lanza un error de readdirp - ¿alguien sabe qué está pasando?

Date: 2020-05-19T19:20:23.850Z - Hash: d2eb790e660ef9dbe323 - Time: 10777ms
** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
: Compiled successfully.
C:\__FILES\xxx\xxx\xxx\xxx\node_modules\chokidar\node_modules\readdirp\index.js:252
    throw new TypeError('readdirp: root argument must be a string. Usage: readdirp(root, options)');
    ^

Google no parece saber mucho sobre esto. He actualizado mis paquetes npm a las últimas versiones de todo. Aquí está mi package.json por si ayuda:

  "dependencies": {
    "@angular/animations": "^9.1.7",
    "@angular/common": "^9.1.7",
    "@angular/compiler": "^9.1.7",
    "@angular/core": "^9.1.7",
    "@angular/elements": "^9.1.7",
    "@angular/forms": "^9.1.7",
    "@angular/platform-browser": "^9.1.7",
    "@angular/platform-browser-dynamic": "^9.1.7",
    "@angular/router": "^9.1.7",
    "@mapbox/tilebelt": "^1.0.1",
    "@types/geojson": "^7946.0.7",
    "@types/google.visualization": "0.0.52",
    "@types/mapbox-gl": "^1.10.1",
    "babel-runtime": "^6.26.0",
    "bootstrap": "^4.5.0",
    "core-js": "^3.6.5",
    "document-register-element": "^1.7.2",
    "jquery": "^3.5.1",
    "mapbox-gl": "^1.10.1",
    "nodemon": "^2.0.4",
    "popper": "^1.0.1",
    "rxjs": "^6.5.5",
    "tslib": "^2.0.0",
    "typescript": "^3.6.5",
    "zone.js": "^0.10.3"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.901.6",
    "@angular/cli": "^9.1.6",
    "@angular/compiler-cli": "^9.1.7",
    "@angular/language-service": "^9.1.7",
    "@types/jasmine": "^3.5.10",
    "@types/jasminewd2": "~2.0.8",
    "@types/node": "^14.0.3",
    "codelyzer": "^5.2.2",
    "jasmine-core": "~3.5.0",
    "jasmine-spec-reporter": "^5.0.2",
    "karma": "^5.0.8",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage-istanbul-reporter": "^3.0.2",
    "karma-jasmine": "^3.1.1",
    "karma-jasmine-html-reporter": "^1.5.4",
    "protractor": "^7.0.0",
    "ts-node": "^8.10.1",
    "tslint": "^6.1.2"
  }

Editar: Si lo construyo y lo sirvo, no hay problemas, y parece que pasa bien la compilación de desarrollo. ¿Así que algo tiene que ver con servir la aplicación de desarrollo?

Respuesta #1

@Radik tuvo el enfoque correcto. Eliminé node_modules, package.json y package-lock.json, tomé un package.json antiguo de antes de que eliminara el backend y hice un npm install. En lugar de eliminar las líneas que no necesitaba del package.json como hice la última vez, esta vez hice npm uninstall en cada paquete y ejecuté ng serve después de cada uno para asegurarme de que aún funcionara. Luego ejecuté npm outdated y actualicé cada paquete usando npm install xxx@latest. Finalmente hice npm prune. No puedo decir qué paso solucionó el problema, pero ahora funciona bien.

Artículos relacionados