什么可能导致与 npm 无法找到文件相关的错误?我的 node_modules 子文件夹中没有内容.这是为什么? [英] What could cause an error related to npm not being able to find a file? No contents in my node_modules subfolder. Why is that?

查看:41
本文介绍了什么可能导致与 npm 无法找到文件相关的错误?我的 node_modules 子文件夹中没有内容.这是为什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在从 ASP.NET Boilerplate 并且我收到一个与 npm 无法找到文件有关"的错误.

I'm trying to run npm install in the angular project folder I got from ASP.NET Boilerplate and I'm getting an error that is "related to npm not being able to find a file."

D:DevAspNetBoilerplateMyProject3.5.0angular>npm install
npm WARN deprecated @types/moment@2.13.0: 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 codelyzer@3.2.2 requires a peer of @angular/compiler@^2.3.1 || >=4.0.0-beta <5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@3.2.2 requires a peer of @angular/core@^2.3.1 || >=4.0.0-beta <5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.3 (node_modulesfsevents):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Error: EPERM: operation not permitted, rename 'D:DevAspNetBoilerplateMyProject3.5.0angular
ode_modules.stagingfsevents-8cc0601e
ode_modulesare-we-there-yet' -> 'D:DevAspNetBoilerplateMyProject3.5.0angular
ode_modules.stagingare-we-there-yet-cedb4a6a'

npm ERR! path D:DevAspNetBoilerplateMyProject3.5.0angular
ode_modules@angular-devkituild-optimizer
ode_modules	ypescript
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall rename
npm ERR! enoent ENOENT: no such file or directory, rename 'D:DevAspNetBoilerplateMyProject3.5.0angular
ode_modules@angular-devkituild-optimizer
ode_modules	ypescript' -> 'D:DevAspNetBoilerplateMyProject3.5.0angular
ode_modules@angular-devkituild-optimizer
ode_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:UsersJackAppDataRoaming
pm-cache\_logs2018-03-21T19_33_18_250Z-debug.log

我可以清楚地看到这是因为我的 node_modules 子文件夹只包含一个文件夹结构,其中没有文件.该结构是:

I can clearly see that this is happening because my node_modules subfolder contains only a single folder structure with no files within it. That structure is:

node_modules@angular-devkituild-optimizer
ode_modules

我安装了 node 8.9.4、npm 5.6.0 和 angular-CLI 1.5.0 以及 typescript 2.0.0.后两个包已经全局安装.

I have node 8.9.4, npm 5.6.0, and angular-CLI 1.5.0 installed as well as typescript 2.0.0. The latter two packages have been installed globally.

这里是 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"
    }
}

当我运行 npm install 时,我可以看到包被下载到 .staging 文件夹中.在运行 finalize 命令时(请参阅下面的日志),我可以看到包文件夹正在合并并复制到某处,但该处似乎不是我的 node_modules 子文件夹,而不是我上面显示的第一组子文件夹.npm install 完成后,.staging 文件夹将被删除,剩下的就是部分文件夹结构.

When I run npm install, I can see the packages being downloaded into the .staging folder. At the point that the finalize command is run (see the log below), I can see that the package folders are being consolidated and copied somewhere, but that somewhere does not appear to be my node_modules subfolder other than the first set of subfolders as I have shown above. When the npm install completes, the .staging folder is deleted and all that I have left is that partial folder structure.

诚然,我是 Node 开发的新手 - 我通常在我们的 ASP.NET Web API 后端工作.我试图让我的开发环境与我们前端开发人员的开发环境同步.我花了一天的大部分时间寻找解决方案.我试过卸载并重新安装 Node.js.我尝试了与我们前端开发人员环境相匹配的不同版本.我已经尝试使用最新版本的 angular-CLI 和打字稿,并且已经回退到我上面引用的版本,希望需要对等"警告将得到解决.我在这个网站上搜索过类似的答案.我找到的最接近的一个仍未得到答复.

Admittedly I am new to Node development - I usually work on our ASP.NET Web API backends. I'm trying to get my development environment in sync with our front-end developer's development environment. I have spent most of the day looking for a solution. I've tried uninstalling and reinstalling Node. I've tried different versions that match our front-end developer's environment. I've tried using the latest versions of angular-CLI and typescript and have fallen back to the versions I reference above in hopes that the "requires a peer" warnings would be resolved. I have searched for similar answers on this site. The closest one I have found remains unanswered.

这里是完整日志"的结尾;在 npm 错误输出中引用:

Here is the end of the "complete log" referenced in the npm error output:

19577 silly saveTree | `-- tsutils@2.22.2
19577 silly saveTree +-- typescript@2.4.2
19577 silly saveTree +-- web-animations-js@2.3.1
19577 silly saveTree `-- zone.js@0.8.18
19578 warn codelyzer@3.2.2 requires a peer of @angular/compiler@^2.3.1 || >=4.0.0-beta <5.0.0 but none is installed. You must install peer dependencies yourself.
19579 warn codelyzer@3.2.2 requires a peer of @angular/core@^2.3.1 || >=4.0.0-beta <5.0.0 but none is installed. You must install peer dependencies yourself.
19580 warn optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.3 (node_modulesfsevents):
19581 warn optional SKIPPING OPTIONAL DEPENDENCY: Error: EPERM: operation not permitted, rename 'D:DevAspNetBoilerplateMyProject3.5.0angular
ode_modules.stagingfsevents-8cc0601e
ode_modulesare-we-there-yet' -> 'D:DevAspNetBoilerplateMyProject3.5.0angular
ode_modules.stagingare-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:DevAspNetBoilerplateMyProject3.5.0angular
ode_modules@angular-devkituild-optimizer
ode_modules	ypescript' -> 'D:DevAspNetBoilerplateMyProject3.5.0angular
ode_modules@angular-devkituild-optimizer
ode_modules.typescript.DELETE'
19584 verbose cwd D:DevAspNetBoilerplateMyProject3.5.0angular
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:DevAspNetBoilerplateMyProject3.5.0angular
ode_modules@angular-devkituild-optimizer
ode_modules	ypescript
19590 error code ENOENT
19591 error errno -4058
19592 error syscall rename
19593 error enoent ENOENT: no such file or directory, rename 'D:DevAspNetBoilerplateMyProject3.5.0angular
ode_modules@angular-devkituild-optimizer
ode_modules	ypescript' -> 'D:DevAspNetBoilerplateMyProject3.5.0angular
ode_modules@angular-devkituild-optimizer
ode_modules.typescript.DELETE'
19594 error enoent This is related to npm not being able to find a file.
19595 verbose exit [ -4058, true ]

请指教.

推荐答案

可能与 Angular Packages 损坏或包不兼容有关.

It might be related to corruption in Angular Packages or incompatibility of packages.

请按照以下步骤解决问题.

Please follow the below steps to solve the issue.

  • Delete node_modules folder manually.
  • Install Node ( https://nodejs.org/en/download ).
  • Install Yarn ( https://yarnpkg.com/en/docs/install ).
  • Open command prompt , go to path angular folder and run Yarn.
  • Run angular swag efresh.bat.
  • Run npm start from the angular folder.

更新

ASP.NET Boilerplate 建议 此处 使用 yarn,因为 npm 存在一些问题.它很慢,不能始终如一地解决依赖关系,yarn 解决了这些问题,并且与 npm 兼容.

ASP.NET Boilerplate suggests here to use yarn because npm has some problems. It is slow and can not consistently resolve dependencies, yarn solves those problems and it is compatible to npm as well.

这篇关于什么可能导致与 npm 无法找到文件相关的错误?我的 node_modules 子文件夹中没有内容.这是为什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆