当我尝试升级到Angular 8时,我得到了这个错误。
npm WARN old lockfile
npm WARN old lockfile包锁。Json文件是用旧版本的npm,
npm WARN旧的lockfile,所以补充的元数据必须从注册表。
npm WARN old lockfile
这是一个一次性修复,请耐心等待…npm WARN old lockfile
npm犯错!代码ERESOLVE
npm犯错!erresolve无法解析
npm犯错!
npm犯错!同时解析:comprehensivedashboard@0.0.0
npm犯错!发现:@angular/animations@7.2.6
npm犯错!node_modules @angular/动画
npm犯错!@angular/animations@" ~ 8.2.14"从根项目
npm犯错!同行@angular/animations@"祝辞= 7.0.0"从@angular/material@7.3.3
npm犯错!node_modules @angular/材料
npm犯错!@angular/material@" ~ 8.2.3"从根项目
npm犯错!
npm犯错!无法解析依赖项:
npm犯错!@angular/animations@" ~ 8.2.14"从根项目
npm犯错!
npm犯错!冲突的对等依赖:@angular/core@8.2.14
npm犯错!node_modules @angular/核心
npm犯错!同行@angular/core@" 8.2.14"从@angular/animations@8.2.14
npm犯错!node_modules @angular/动画
npm犯错!@angular/animations@" ~ 8.2.14"从根项目
npm犯错!
npm犯错!修复上游依赖冲突,或者重试
npm犯错!该命令带有——force或——legacy-peer-deps
npm犯错!接受不正确(并且可能损坏)的依赖项决议。
npm犯错!
npm犯错!看到C:UsersvakkinenAppDataLocalnpm-cache erresolve -report.txt完整的报告。
npm犯错!在
中可以找到此运行的完整日志:npm犯错!
C: 当地用户 vakkinen AppData npm-cache_logs 2021 - 10 - 05 - t12_19_50_257z debug.log
所以我决定创建一个全新的Angular8应用,看看包里有什么。Json文件的样子。该文件附在下面。然后我将所有需要的包一次一个地添加到这个全新的空项目中。应用程序构建成功,我可以运行应用程序了。所以我复制并粘贴了所有的依赖和devDependencies到旧的project package.json。由于上述相同的错误,该项目仍然无法通过npm i
。因此,我尝试将repo克隆到一个新目录中,并替换了包的内容。使用包的内容创建。Json从全新的空项目,仍然是相同的错误。我做错了什么?
{
"name": "dashboard",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "~8.2.14",
"@angular/cdk": "8.2.3",
"@angular/common": "~8.2.14",
"@angular/compiler": "~8.2.14",
"@angular/core": "~8.2.14",
"@angular/forms": "~8.2.14",
"@angular/material": "~8.2.3",
"@angular/platform-browser": "~8.2.14",
"@angular/platform-browser-dynamic": "~8.2.14",
"@angular/router": "~8.2.14",
"@ng-bootstrap/ng-bootstrap": "^5.3.0",
"bootstrap": "^4.3.1",
"core-js": "^2.5.4",
"@swimlane/ngx-charts": "^11.0.0",
"fusioncharts": "^3.15.0-sr.1",
"hammerjs": "^2.0.8",
"moment": "^2.24.0",
"ngx-bootstrap": "^3.2.0",
"ngx-csv": "^0.3.1",
"ngx-export-as": "1.4.2",
"ngx-scrollbar": "^4.1.1",
"ngx-select-dropdown": "^1.0.1",
"node-sass": "^4.14.0",
"rxjs": "~6.4.0",
"sass-loader": "^8.0.2",
"tslib": "^1.10.0",
"zone.js": "~0.9.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.13.0",
"@angular/cli": "~8.3.29",
"@angular/compiler-cli": "~8.2.14",
"@angular/language-service": "~8.2.14",
"@types/jasmine": "~3.3.8",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "^5.0.0",
"jasmine-core": "~3.8.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~4.1.0",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.1",
"karma-jasmine": "~2.0.1",
"karma-jasmine-html-reporter": "^1.7.0",
"protractor": "~7.0.0",
"ts-node": "~7.0.0",
"tslint": "~5.15.0",
"typescript": "~3.5.3"
}
}
在与包文件相同的文件夹中应该有一个名为package-lock的文件。删除它,错误就会消失。包锁文件包含依赖项及其版本的所有依赖项。删除它不会影响你的项目,因为它是在npm install上重新生成的。
错误消息警告您package-lock.json文件是问题所在。只需删除它,就会生成一个新的。
问题源于node_modules
目录和package-lock.json
目录中有不正确的文件。
最简单的解决方案可能是删除node_modules
目录和包锁。然后运行npm install
以获得一个干净的node_modules
目录和一个新的package-lock.json
根据你的package.json
我建议阅读更多关于包锁的内容。Json文件用于这里:https://medium.com/coinmonks/everything-you-wanted-to-know-about-package-lock-json-b81911aa8ab8
修复此问题的步骤:
- 删除
node_modules
文件夹 - 删除
package-lock.json
。 - 运行
npm i --force
.