¿Qué podría causar un error relacionado con npm al no poder encontrar un archivo? No hay contenidos en mi subcarpeta node_modules. ¿Porqué es eso?

Estoy intentando ejecutar npm install en la carpeta del proyecto angular que obtuve de ASP.NET Boilerplate y recibo un error que está “relacionado con npm no poder encontrar un archivo”.

 D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular>npm install npm WARN deprecated @types/[email protected]: This is a stub types definition for Moment (https://github.com/moment/moment). Moment provides its own type definitions, so you don't need @types/moment installed! npm WARN [email protected] requires a peer of @angular/[email protected]^2.3.1 || >=4.0.0-beta =4.0.0-beta  'D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular\node_modules\.staging\are-we-there-yet-cedb4a6a' npm ERR! path D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular\node_modules\@angular-devkit\build-optimizer\node_modules\typescript npm ERR! code ENOENT npm ERR! errno -4058 npm ERR! syscall rename npm ERR! enoent ENOENT: no such file or directory, rename 'D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular\node_modules\@angular-devkit\build-optimizer\node_modules\typescript' -> 'D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular\node_modules\@angular-devkit\build-optimizer\node_modules\.typescript.DELETE' npm ERR! enoent This is related to npm not being able to find a file. npm ERR! enoent npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\Jack\AppData\Roaming\npm-cache\_logs\2018-03-21T19_33_18_250Z-debug.log 

Puedo ver claramente que esto está sucediendo porque mi subcarpeta node_modules contiene solo una estructura de carpeta sin archivos dentro de ella. Esa estructura es:

 node_modules\@angular-devkit\build-optimizer\node_modules 

Tengo el nodo 8.9.4, npm 5.6.0, y angular-cli 1.5.0 instalado, así como también typescript 2.0.0. Los dos últimos paquetes se han instalado a nivel mundial.

Aquí está el contenido del archivo package.json :

 { "name": "MyProject", "version": "0.0.0", "license": "MIT", "angular-cli": {}, "scripts": { "ng": "ng", "start": "ng serve --host 0.0.0.0 --port 4200", "hmr": "ng serve --host 0.0.0.0 --port 4200 4201 --hmr -e=hmr", "test": "ng test", "pree2e": "webdriver-manager update --standalone false --gecko false", "e2e": "protractor" }, "private": true, "dependencies": { "@angular/animations": "^5.0.3", "@angular/common": "^5.0.3", "@angular/compiler": "^5.0.3", "@angular/core": "^5.0.3", "@angular/forms": "^5.0.3", "@angular/http": "^5.0.3", "@angular/platform-browser": "^5.0.3", "@angular/platform-browser-dynamic": "^5.0.3", "@angular/router": "^5.0.3", "@aspnet/signalr": "1.0.0-preview1-28189", "@types/bootstrap": "^3.3.33", "@types/jquery": "^3.2.12", "@types/jquery.blockui": "0.0.28", "@types/jquery.validation": "^1.16.3", "@types/lodash": "^4.14.62", "@types/moment": "^2.13.0", "@types/moment-timezone": "^0.2.34", "@types/signalr": "^2.2.33", "@types/toastr": "^2.1.33", "abp-ng2-module": "^1.3.0", "abp-web-resources": "^3.3.0", "animate.css": "^3.5.2", "block-ui": "^2.70.1", "bootstrap": "^3.3.7", "bootstrap-select": "^1.12.2", "chart.js": "^2.6.0", "core-js": "^2.4.1", "famfamfam-flags": "^1.0.0", "flot": "^0.8.0-alpha", "font-awesome": "^4.7.0", "jquery": "^3.1.1", "jquery-countto": "^1.2.0", "jquery-migrate": "^3.0.0", "jquery-slimscroll": "^1.3.8", "jquery-sparkline": "^2.4.0", "js-cookie": "^2.1.4", "lodash": "^4.17.4", "moment": "^2.18.1", "moment-timezone": "^0.5.13", "morris.js": "^0.5.0", "ngx-bootstrap": "^2.0.2", "ngx-pagination": "^3.0.3", "node-waves": "^0.7.5", "push.js": "1.0.4", "raphael": "^2.2.7", "rxjs": "^5.5.2", "signalr": "^2.2.1", "simple-line-icons": "^2.4.1", "spin.js": "^2.3.2", "sweetalert": "^2.0.8", "toastr": "^2.1.2", "ts-helpers": "^1.1.2", "web-animations-js": "^2.3.1", "zone.js": "0.8.18" }, "devDependencies": { "@angular/cli": "^1.5.4", "@angular/compiler-cli": "^5.0.3", "@angularclass/hmr": "^2.1.3", "@types/jasmine": "^2.5.38", "@types/node": "^8.0.27", "codelyzer": "^3.1.2", "jasmine-core": "^2.5.2", "jasmine-spec-reporter": "^4.2.1", "karma": "^1.4.1", "karma-chrome-launcher": "^2.0.0", "karma-cli": "^1.0.1", "karma-coverage-istanbul-reporter": "^1.3.0", "karma-jasmine": "^1.1.0", "karma-jasmine-html-reporter": "^0.2.2", "nswag": "^11.12.7", "protractor": "^5.1.1", "ts-node": "^3.3.0", "tslint": "^5.7.0", "typescript": "2.4.2" } } 

Cuando ejecuto npm install , puedo ver los paquetes que se descargan en la carpeta .staging . En el momento en que se ejecuta el comando de finalize (consulte el registro a continuación), puedo ver que las carpetas de paquetes se están consolidando y copiando en algún lugar, pero que en alguna parte no parece ser mi subcarpeta node_modules no sea el primer conjunto de subcarpetas como yo Se han mostrado arriba. Cuando npm install , la carpeta .staging se elimina y todo lo que me queda es esa estructura de carpeta parcial.

Es cierto que soy nuevo en el desarrollo de Node; por lo general, trabajo en nuestros backends de API Web ASP.NET. Estoy intentando sincronizar mi entorno de desarrollo con nuestro entorno de desarrollo de desarrolladores front-end. He pasado la mayor parte del día buscando una solución. He intentado desinstalar y reinstalar Node. He intentado diferentes versiones que coinciden con el entorno de nuestro desarrollador frontal. He intentado usar las últimas versiones de angular-cli y typescript y he recurrido a las versiones a las que me he referido anteriormente con la esperanza de que se solucionen las advertencias de “requiere un par”. He buscado respuestas similares en este sitio. El más cercano que he encontrado queda sin respuesta.

Aquí está el final del “registro completo” al que se hace referencia en la salida de error de npm:

 19577 silly saveTree | `-- [email protected] 19577 silly saveTree +-- [email protected] 19577 silly saveTree +-- [email protected] 19577 silly saveTree `-- [email protected] 19578 warn [email protected] requires a peer of @angular/[email protected]^2.3.1 || >=4.0.0-beta =4.0.0-beta  'D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular\node_modules\.staging\are-we-there-yet-cedb4a6a' 19582 verbose optional SKIPPING OPTIONAL DEPENDENCY: 19582 verbose optional Please try running this command again as root/Administrator. 19583 verbose stack Error: ENOENT: no such file or directory, rename 'D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular\node_modules\@angular-devkit\build-optimizer\node_modules\typescript' -> 'D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular\node_modules\@angular-devkit\build-optimizer\node_modules\.typescript.DELETE' 19584 verbose cwd D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular 19585 verbose Windows_NT 10.0.16299 19586 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" 19587 verbose node v8.9.4 19588 verbose npm v5.6.0 19589 error path D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular\node_modules\@angular-devkit\build-optimizer\node_modules\typescript 19590 error code ENOENT 19591 error errno -4058 19592 error syscall rename 19593 error enoent ENOENT: no such file or directory, rename 'D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular\node_modules\@angular-devkit\build-optimizer\node_modules\typescript' -> 'D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular\node_modules\@angular-devkit\build-optimizer\node_modules\.typescript.DELETE' 19594 error enoent This is related to npm not being able to find a file. 19595 verbose exit [ -4058, true ] 

Por favor avise.

Puede estar relacionado con la corrupción en los paquetes angulares o la incompatibilidad de los paquetes.

Por favor, siga los pasos a continuación para resolver el problema.

Actualizar

ASP.NET Boilerplate sugiere aquí usar hilo porque npm tiene algunos problemas. Es lento y no puede resolver constantemente las dependencias, el hilo resuelve esos problemas y también es compatible con npm.

Siguiendo las sugerencias de @viveknuna, actualicé a la última versión de node.js y npm utilizando el instalador descargado. También instalé la última versión de hilo usando un instalador descargado. Luego, como puede ver a continuación, actualicé angular-cli y typescript. Aquí es cómo se veía ese proceso:

 D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular>npm install -g @angular/[email protected] C:\Users\Jack\AppData\Roaming\npm\ng -> C:\Users\Jack\AppData\Roaming\npm\node_modules\@angular\cli\bin\ng npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\@angular\cli\node_modules\fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}) + @angular/[email protected] added 75 packages, removed 166 packages, updated 61 packages and moved 24 packages in 29.084s D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular>npm install -g typescript C:\Users\Jack\AppData\Roaming\npm\tsserver -> C:\Users\Jack\AppData\Roaming\npm\node_modules\typescript\bin\tsserver C:\Users\Jack\AppData\Roaming\npm\tsc -> C:\Users\Jack\AppData\Roaming\npm\node_modules\typescript\bin\tsc + [email protected] updated 1 package in 2.427s D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular>node -v v8.10.0 D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular>npm -v 5.6.0 D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular>yarn --version 1.5.1 

A partir de entonces, corrí el yarn y npm start en mi carpeta angular y todo parece estar bien. Esto es lo que parecía:

 D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular>yarn yarn install v1.5.1 [1/4] Resolving packages... [2/4] Fetching packages... info [email protected]: The platform "win32" is incompatible with this module. info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation. [3/4] Linking dependencies... warning "@angular/cli > @schematics/[email protected]" has incorrect peer dependency "@angular-devkit/[email protected]". warning "@angular/cli > @angular-devkit/schematics > @schematics/[email protected]" has incorrect peer dependency "@angular-devkit/[email protected]". warning " > [email protected]" has incorrect peer dependency "@angular/[email protected]^2.3.1 || >=4.0.0-beta <5.0.0". warning " > [email protected]" has incorrect peer dependency "@angular/[email protected]^2.3.1 || >=4.0.0-beta <5.0.0". [4/4] Building fresh packages... Done in 232.79s. D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular>npm start > [email protected] start D:\Dev\AspNetBoilerplate\MyProject\3.5.0\angular > ng serve --host 0.0.0.0 --port 4200 ** NG Live Development Server is listening on 0.0.0.0:4200, open your browser on http://localhost:4200/ ** Date: 2018-03-22T13:17:28.935Z Hash: 8f226b6fa069b7c201ea Time: 22494ms chunk {account.module} account.module.chunk.js () 129 kB [rendered] chunk {app.module} app.module.chunk.js () 497 kB [rendered] chunk {common} common.chunk.js (common) 1.46 MB [rendered] chunk {inline} inline.bundle.js (inline) 5.79 kB [entry] [rendered] chunk {main} main.bundle.js (main) 515 kB [initial] [rendered] chunk {polyfills} polyfills.bundle.js (polyfills) 1.1 MB [initial] [rendered] chunk {styles} styles.bundle.js (styles) 1.53 MB [initial] [rendered] chunk {vendor} vendor.bundle.js (vendor) 15.1 MB [initial] [rendered] webpack: Compiled successfully. 

Tuve el mismo problema hoy y me estaba volviendo loco !!! Lo que hice fue actualizar al nodo 8.10 y actualizar mi NPM a la CLI angular más reciente que desinstalé

 npm uninstall -g angular-cli npm uninstall --save-dev angular-cli 

Luego verifiqué mi caché de NPM si no estaba actualizado, lo limpié y ejecuté la instalación nuevamente si la versión npm es <5 y luego uso npm cache clean –force

 npm install -g @angular/[email protected] 

y creó un nuevo archivo de proyecto y crea un nuevo proyecto angular.

Intenta los siguientes pasos:
1. Asegúrese de tener el último npm (npm install -g npm).
2. Agregue una excepción a su antivirus para ignorar la carpeta node_modules en su proyecto.
3. $ rm -rf node_modules package-lock.json.
4. $ npm instalar