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.