我在更新 Angular 版本时遇到问题。当我使用时ng update,我得到以下输出:
Name                                       Version                  Command to update
     ----------------------------------------------------------------------------------------
      @angular/cdk                               12.1.2 -> 12.2.0         ng update @angular/cdk
      @angular/cli                               12.1.2 -> 12.2.0         ng update @angular/cli
      @angular/core                              12.1.2 -> 12.2.0         ng update @angular/core
      @angular/material                          12.1.2 -> 12.2.0         ng update @angular/material
Run Code Online (Sandbox Code Playgroud)
之后我尝试使用以下命令更新所有四个:
ng update @angular/cdk @angular/cli @angular/core @angular/material -C
Run Code Online (Sandbox Code Playgroud)
更新package.json后npm i运行以安装所有软件包。这里我遇到了以下错误:
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! Found: @angular-devkit/build-angular@12.1.2
npm ERR! node_modules/@angular-devkit/build-angular
npm ERR!   dev @angular-devkit/build-angular@"^12.2.0" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! dev @angular-devkit/build-angular@"^12.2.0" from the root project
npm ERR! 
npm ERR! Conflicting peer dependency: @angular/localize@12.2.0
npm ERR! node_modules/@angular/localize
npm ERR!   peerOptional @angular/localize@"^12.0.0 || ^12.2.0-next" from @angular-devkit/build-angular@12.2.0
npm ERR!   node_modules/@angular-devkit/build-angular
npm ERR!     dev @angular-devkit/build-angular@"^12.2.0" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
Run Code Online (Sandbox Code Playgroud)
我不知道为什么它说Found: @angular-devkit/build-angular@12.1.2当package.json所有@Angular 相关文件都~12.2.0声明为版本时。
Sal*_*med 43
尝试删除node_modules文件夹和package-lock.json文件,然后重新安装,npm这可能会解决您的问题。
因此,运行以下命令:
remove node_modules 
remove package-lock.json
npm install 
Run Code Online (Sandbox Code Playgroud)
        chr*_*urd 18
你永远不应该像这样全面升级 Angular。相反,它是按层次顺序排列的 - 因为许多依赖项只是相互依赖。所以他们中的几个人就消失了。
只需删除node_modules并再次运行即可解决此问题npm install。
这次虽然按顺序:
   npm install @angular/cli@latest -g
   ng update @angular/cli,
   ng update @angular/common
   npm install @angular/cdk@latest
   npm install @angular/material@latest
Run Code Online (Sandbox Code Playgroud)
在 Angular 12.2 中,有关于 chokidar 的警告,如果你运行npmauditfix它不会做任何事情,还有其他几个 - 你只需要等待他们修复它们,因为它们是开发依赖项。
这是取自当前项目的通用工作版本:{
 "@angular/animations": "~12.1.0",
    "@angular/cdk": "^12.2.0",
    "@angular/common": "~12.1.0",
    "@angular/compiler": "~12.1.0",
    "@angular/core": "~12.1.0",
    "@angular/fire": "^6.1.5",
    "@angular/forms": "~12.1.0",
    "@angular/platform-browser": "~12.1.0",
    "@angular/platform-browser-dynamic": "~12.1.0",
    "@angular/platform-server": "~12.1.0",
    "@angular/router": "~12.1.0",
    "@angular/service-worker": "~12.1.0",
    "@easypost/api": "^3.11.2",
    "@nguniversal/express-engine": "^12.1.0",
    "bootstrap": "^5.0.2",
    "dayjs": "^1.10.6",
    "express": "^4.15.2",
    "firebase": "^8.8.1",
    "ngx-quill": "^14.1.2",
    "quill": "^1.3.7",
    "quill-image-resize-module": "^3.0.0",
    "rxjs": "~6.6.0",
    "tslib": "^2.2.0",
    "zone.js": "~0.11.4"
}
Run Code Online (Sandbox Code Playgroud)
        小智 8
当出现对等依赖错误时,运行以下命令
npm install --legacy-peer-deps
它将覆盖项目的 package.lock.json 和 package.json 文件中的所有依赖项。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           80720 次  |  
        
|   最近记录:  |