How do I deal with installing peer dependencies in Angular CLI?

158,859

Solution 1

Peer dependency warnings, more often than not, can be ignored. The only time you will want to take action is if the peer dependency is missing entirely, or if the version of a peer dependency is higher than the version you have installed.

Let's take this warning as an example:

npm WARN @angular/[email protected] requires a peer of @angular/[email protected] but none is installed. You must install peer dependencies yourself.

With Angular, you would like the versions you are using to be consistent across all packages. If there are any incompatible versions, change the versions in your package.json, and run npm install so they are all synced up. I tend to keep my versions for Angular at the latest version, but you will need to make sure your versions are consistent for whatever version of Angular you require (which may not be the most recent).

In a situation like this:

npm WARN [email protected] requires a peer of @angular/core@^2.4.0 || ^4.0.0 but none is installed. You must install peer dependencies yourself.

If you are working with a version of Angular that is higher than 4.0.0, then you will likely have no issues. Nothing to do about this one then. If you are using an Angular version under 2.4.0, then you need to bring your version up. Update the package.json, and run npm install, or run npm install for the specific version you need. Like this:

npm install @angular/[email protected] --save

You can leave out the --save if you are running npm 5.0.0 or higher, that version saves the package in the dependencies section of the package.json automatically.

In this situation:

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

You are running Windows, and fsevent requires OSX. This warning can be ignored.

Hope this helps, and have fun learning Angular!

Solution 2

You can ignore the peer dependency warnings by using the --force flag with Angular cli when updating dependencies.

ng update @angular/cli @angular/core --force

For a full list of options, check the docs: https://angular.io/cli/update

Solution 3

Update your angular (globaly):

  • by updating with:

ng update @angular/cli @angular/core

  • or remove angular and reinstall it:

npm uninstall -g @angular/cli
npm install -g @angular/cli

After, if you want to use your old angular project (localy):

  • Test with npm list if some dependencies have changed and get this error:

npm ERR! peer dep missing: mydependencie, required by somecomponent

it's mean you have to update your project:

  • Then you can just, create a new project, paste your code and reinstall all depencies
  • Or install all dependencies required by npm list:

npm install mydependencie

Share:
158,859
tommy
Author by

tommy

Updated on July 14, 2021

Comments

  • tommy
    tommy almost 3 years

    I've found myself in an almost endless cycle of errors when trying to update my Angular CLI and NPM. Every time I update, I am met with WARN messages telling me to install peer dependencies (see below), but each time I install a dependency, I am met with more WARN messages. Is there a better way of handling this situation or does it seriously take hours?

    npm WARN @angular/[email protected] requires a peer of @angular/[email protected] 
    but none is installed. You must install peer dependencies yourself.
    npm WARN @angular/[email protected] requires a peer of typescript@>=2.4.2 
    <2.6 but none is installed. You must install peer dependencies yourself.
    npm WARN @ng-bootstrap/[email protected] requires a peer of 
    @angular/core@^4.0.3 but none is installed. You must install peer 
    dependencies yourself.
    npm WARN @ng-bootstrap/[email protected] requires a peer of 
    @angular/common@^4.0.3 but none is installed. You must install peer 
    dependencies yourself.
    npm WARN @ng-bootstrap/[email protected] requires a peer of 
    @angular/forms@^4.0.3 but none is installed. You must install peer 
    dependencies yourself.
    npm WARN @schematics/[email protected] requires a peer of @angular-
    devkit/[email protected] but none is installed. You must install peer dependencies 
    yourself.
    npm WARN @schematics/[email protected] requires a peer of @angular-
    devkit/[email protected] but none is installed. You must install peer 
    dependencies yourself.
    npm WARN @schematics/[email protected] requires a peer of @angular-
    devkit/[email protected] but none is installed. You must install peer dependencies 
    yourself.
    npm WARN [email protected] requires a peer of 
    @angular/core@^4.0.1 but none is installed. You must install peer 
    dependencies yourself.
    npm WARN [email protected] requires a peer of 
    @angular/common@^4.0.1 but none is installed. You must install peer 
    dependencies yourself.
    npm WARN [email protected] requires a peer of @angular/platform-
    browser@^4.0.0 but none is installed. You must install peer dependencies 
    yourself.
    npm WARN [email protected] requires a peer of 
    @angular/animations@^4.0.1 but none is installed. You must install peer 
    dependencies yourself.
    npm WARN [email protected] requires a peer of [email protected] - 3 but none 
    is installed. You must install peer dependencies yourself.
    npm WARN [email protected] requires a peer of popper.js@^1.12.3 but 
    none is installed. You must install peer dependencies yourself.
    npm WARN [email protected] requires a peer of @angular/core@^2.4.7 || ^4.0.0 
    but none is installed. You must install peer dependencies yourself.
    npm WARN [email protected] requires a peer of @angular/core@^2.4.0 || 
    ^4.0.0 but none is installed. You must install peer dependencies yourself.
    npm WARN [email protected] requires a peer of @angular/common@^2.4.0 || 
    ^4.0.0 but none is installed. You must install peer dependencies yourself.
    npm WARN [email protected] requires a peer of typescript@>=2.4.2 <2.6 but none 
    is installed. You must install peer dependencies yourself.
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] 
    (node_modules\fsevents):
    npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for 
    [email protected]: wanted {"os":"darwin","arch":"any"} (current: 
    {"os":"win32","arch":"x64"})
    

    I know I must be doing something wrong, but I'm new to Angular.

  • tommy
    tommy about 6 years
    Thanks! Should I update the versions in the "dependencies" and "devDependencies" in my package.json or should I create a "peerDependencies" and add these versions to it?
  • R. Richards
    R. Richards about 6 years
    My comment about not having to worry about devDependencies isn't right. You will want to update version numbers in that section too. The Angular packages in that section should have the same version as the packages in the dependencies section. Change the versions there is something that may have to do as well. Sorry for any confusion!
  • JTech
    JTech about 5 years
    I would find this answer more helpful if it included a quick explanation of what this does and why it helped you with the issue raised by the OP
  • Wojtek Dmyszewicz
    Wojtek Dmyszewicz about 5 years
    @JTech I've updated my answer, thanks for the feedback.
  • mkb
    mkb about 5 years
    seems like a task for computers, all the information is in the package.json and my OS is obvious, it's not fun to learn these. One day people say "our ancestors suffered a lot to get us this point"
  • hosam hemaily
    hosam hemaily over 4 years
    using node js command prompt inside clientapp folder , it is working , many thanks
  • chrisinmtown
    chrisinmtown over 4 years
    @R.Richards writes "If you are working with a version of Angular that is higher than 4.0.0, then you will likely have no issues." Can the analyzer detect the presence of Angular higher than 4.0.0? If yes, then why show this warning?
  • Yann
    Yann almost 4 years
    Sorry for being obtuse but I don't get why you get a warning like ` @angular/core@^2.4.0 || ^4.0.0 but none is installed` if you are working with a version of Angular that is higher than 4.0.0… Is it just because the version is off?
  • Amith Dissanayaka
    Amith Dissanayaka about 2 years
    What if we installed the latest angular version and some of the packages warn like this(There are few libraries I can see this error). While resolving: @dashjoin/[email protected] Found: @angular/[email protected] Could not resolve dependency: peer @angular/common@"~11.2.12" from @dashjoin/[email protected]