Kan de afhankelijkheidsboomfout niet oplossen bij het installeren van npm-pakketten

Als ik de npm-pakketten probeer te installeren met de opdracht npm i, krijg ik de volgende uitzondering:

Ik heb geprobeerd het node js-pakket opnieuw te installeren en de proxy uit te zetten met:

set HTTP_PROXY=
set HTTPS_PROXY=

Het probleem is er nog steeds. Wat doe ik verkeerd?

Bijwerken:

Als ik de volgende opdracht uitvoer:

npm install --legacy-peer-deps 

De volgende fout wordt weergegeven:


Antwoord 1, autoriteit 100%

Dit is niet gerelateerd aan http-proxy.

Je hebt een afhankelijkheidsconflict(onjuisteen mogelijk gebrokenafhankelijkheid) zoals er staat, dus probeer de opdracht uit te voeren met --force, of --legacy-peer-deps. Als het niet van kracht wordt, gebruikt de tijdelijke oplossingeerdere versies van het knooppunt(de versie van het knooppunt downgraden), omdat dit soms dit soort fouten veroorzaakt.

Update gebaseerd op OP’s Update:

Zoals je ziet, wordt de volgende fout geactiveerd:

Geen overeenkomende versie gevonden voor @angular/http@^9.1.4.

Bekijk angular/httppagina . Opmerking dat de nieuwste versie voor die verouderde pakket 7.2.16terwijl u een bovenste versie aanvraagt ​​(bijv. ^9.1.4) ! Probeer dus de projectafhankelijkheid te controleren en de verhoogde fouten te volgen om het probleem op te lossen.


2, Autoriteit 44%

Probeer deze opdracht –

npm install --save --legacy-peer-deps

3, Autoriteit 19%

Naast het gebruik van de --legacy-peer-depsOpdrachtregeloptie, kan dit ook meer permanent als een config-optie worden ingesteld:

npm config set legacy-peer-deps true

4, Autoriteit 12%

Dit gebeurt voor sommige pakketten na het updaten naar NPM 7.

Pamper --legacy-peer-depsKan helpen:

npm i --legacy-peer-deps

Hier beschreven Legacy-peer-deps

Oorzaken NPM om peerdependencies volledig te negeren bij het bouwen van een
Pakketboom, zoals in NPM-versies 3 tot en met 6.

Als een pakket niet kan worden geïnstalleerd vanwege overdreven streng
Peerdependencies die botsen, biedt het een manier om vooruit te gaan
het oplossen van de situatie.

U kunt deze optie instellen op trueStandaard (niet aanbevolen door NPM):

npm config set legacy-peer-deps true

of wacht gewoon totdat deze pakketten op de hoogte zijn.


5, Autoriteit 2%

Ik hoop dat mijn bericht u kan helpen, eerst probeerde ik

npm install

Het gaf me fout unable to resolve dependency treeniet oplossen op de Help-informatie van deze opdracht

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.

Ik heb deze opdracht geprobeerd

npm install --legacy-peer-deps 

En het loste mijn probleem op


Antwoord 6, autoriteit 2%

De snelste oplossing: npm install --legacy-peer-deps

Verklaart:

In npm-versies 3 tot en met 6 werden peerDependencies niet automatisch geïnstalleerd en zou er een waarschuwing verschijnen als er een ongeldige versie van de peer-afhankelijkheid in de structuur werd gevonden. Vanaf npm v7 zijn peerDependencies standaard geïnstalleerd.

npm docs: peerDependencies

Je afhankelijkheid bevat enkele peerDependencies die in strijd zijn met de afhankelijkheid van het rootproject.

Zoals beschreven in het npm ERR-logboek.


Antwoord 7

Het probleem lijkt te zijn dat gf-kautomata-pipeline-uiAngular 9 gebruikt, terwijl @angular/httpAngular 7 vereist (@angular/httpis verouderd en uiteindelijk verwijderd, en alle functionaliteit is in plaats daarvan verplaatst naar @angular/common.)

Zie: https://www.npmjs.com/package/@angular/http

Als je Angular 9 gebruikt, dan

  1. verwijder @angular/httpuit je package.json(je hebt het niet nodig in Angular 9)

  2. Zorg ervoor dat u @angular/commonin uw package.jsonheeft staan.

  3. Voer npm iuit.

Als je Angular 7 gebruikt, open dan je package.json en controleer of al je Angular-pakketten niet hoger zijn dan ^7.0.0. Mogelijk moet u ook gf-kautomata-pipeline-ui verwijderen of contact opnemen met de auteur van gf-kautomata-pipeline-ui om te zien of de bibliotheek compatibel is met Angular 7.


Antwoord 8

in mijn geval kreeg ik de foutmelding (hieronder) na het upgraden van npmvan versie 6 naar 7.

npm ERR! code ERESOLVE npm ERR! ERESOLVE kan afhankelijkheid niet oplossen
boom

npm ERR! Los het upstream-afhankelijkheidsconflict op of probeer deze opdracht opnieuw met –force of –legacy-peer-deps om een onjuiste (en mogelijk verbroken) afhankelijkheidsoplossing te accepteren.

In mijn geval resulteerde het compileren met --legacy-peer-depsof --forcevlaggen in een nutteloze bundel.

Dus ik heb geprobeerd de node_modules, package-lock.jsonte verwijderen en te bundelen met behulp van yarn install. Dit genereerde een garen.lock-bestand en creëerde package-lock.json dat prima werkte in volgende npm-runs.

ps. Ik gebruik de tijdelijke oplossing totdat npm7 goed werkt met mijn project: daarna zal ik garen.lock, package-lock.json en node_modules verwijderen en opnieuw compileren met npm

rm -rf node_modules
rm package-lock.json 
yarn install 
# generates a yarn.lock file and a new package-lock.json
# continue with npm 
npm start

Antwoord 9

Eerst om het probleem te begrijpen. Dit is wat ik als fout heb:

npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: [email protected]
npm ERR! Found: @angular/[email protected]
npm ERR! node_modules/@angular/common
npm ERR!   @angular/common@"11.0.3" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer @angular/common@"^9.1.0 || ^10.0.0" from @agm/[email protected]
npm ERR! node_modules/@agm/core
npm ERR!   @agm/core@"3.0.0-beta.0" from the root project

Eerst moet u het probleem van onder naar boven lezen. Hier vereist @agm/[email protected] hoekgemeenschappelijke 9.1.0 of 10.0.0. En het bovenste bericht zegt dat de gevonden hoekige common eigenlijk 11.0.3 is.

(Als je afhankelijkheden iets beter wilt begrijpen, is hier een heel eenvoudige site https://npm.github.io/how-npm-works-docs/npm3/how-npm3-works.html)

dependencies — these are the essential dependencies that you rely on and call in your project’s code
devDependencies — these are your development dependencies, for example, a prettier library for formatting code
peerDependencies — if you set a peer dependency in your package.json, you are telling the person who installs your package that they need that dependency with the specified version
optionalDependencies — these dependencies are optional and failing to install them will not break the installation process
bundledDependencies — it’s an array of packages that will come bundled with your package. This is useful when some 3rd party library is not on NPM, or you want to include some of your projects as modules

Dus wat moet dan de oplossing zijn? Het probleem gaat over peer-afhankelijkheden. De oplossing is om hoekige gemeenschappelijke of de oplossing te downgraden, is om Legacy-afhankelijkheden Logica te gebruiken voor het installeren van pakketten met – heldere peer-deps. Dus welke – begeleidende peer-depp is niet om de peerdependencies automatisch te installeren. Werkt dit voor jou? Waarschijnlijk wel. Maar u moet specifieke instructie plaatsen hoe dat te doen, of om het gebruik van – gracht-peer-deps automatisch te maken voor toekomstige installatie van de projectpakketten met deze code van een van de bovenstaande antwoorden:

npm config set legacy-peer-deps true

In mijn geval heb ik het pakket geïnstalleerd en ik probeerde NG-serveer te draaien, maar omdat – groei-peer-deps werd gebruikt, waren er afhankelijkheidspakketten die niet waren geïnstalleerd. Ik moest die handmatig installeren (omdat ik de config de hierboven niet heb ingesteld). Aan het einde installeren ongeveer 5 pakketten handmatig, allemaal met – beginner-peer-deps, ik eindigde met een pakket dat niet kon worden geïnstalleerd en ik probeerde niet door te gaan, omdat mijn project waarschuwingen gooide als een gek en er waren veel van pakketten voor audit ook. Dus mijn beslissing was niet om dit pakket te gebruiken en om alternatief te vinden.

Andere oplossingen die ik over de weg heb gelezen:

  • Downgraded Node naar V14, dit zal NPM downgraden. Misschien niet V14, maar dit was de versie die het meest wordt gedowngraded naar.
  • Sommige mensen gebruiken garen om de installatie van het pakket te forceren – persoonlijk begrijp ik niet hoe dit werkt, omdat ik geen garen heb gebruikt.
  • Downgrading Angular and the Global Angular CLI-versie naar versie die aan de eis zal voldoen. In mijn geval is het hoekig / gemeenschappelijk, en in de vraag is het hoekig / kern, maar beide vereisen het hele hoekig naar rechts (niet zeker van dit hier).
  • Het pakket dat u installeert, kan een hogere versie hebben die geen downgrading hoekig vereist. Misschien probeer je de https://updatepackagejson.com/ om je pakketten naar het nieuwste te upgraden, maar dit is In het geval dat uw project vrij nieuw is.

10

In mijn geval had ik problemen met @ Babel / Core afhankelijkheid, maar wilde niet --forcegebruiken omdat ik niet zeker was van de gevolgen, Dus ging ik naar https://www.npmjs.com/ , zocht naar het pakket en vervangte mijn oude versie met de nieuwste. Dat deed het werk


11

Ik werk gewoon mijn knooppunt en het werkt voor mij:

$ node -v
 V xxxx
$ sudo npm install -g n

(Gebruik deze opdracht om de release van het stabiele knooppunt te installeren.)

$ sudo n stable

Ik hoop dat het ook werkt voor jou !!!


12

Hier is de oplossing.

Naar de projectdirectory

sudo rm ./package-lock.json
sudo npm install --force

13

  1. Als u node_modulesmap en package-lock.jsonbestand in uw root-map verwijderen, verwijder dan die:
rm -r node_modules
rm package-lock.json
  1. Voer vervolgens opdrachten uit:
npm install --save --legacy-peer-deps
npm audit fix --force
  1. Maak .envbestand in de hoofdmap en plak onderstaande code:
SKIP_PREFLIGHT_CHECK=true
  1. Start nu uw project:
npm start

Antwoord 14

Geen van de bovenstaande antwoorden heeft me geholpen.
voor mij heeft het updaten van npm naar de nieuwste versie (naar 7.11.1 van 7.8) met behulp van npm i -g npmhet probleem voor mij opgelost.


Antwoord 15

Het resetten van package-lock.jsonwerkt altijd goed voor mij:

git checkout -- package-lock.json

Details:
Ik heb dit vaak ondervonden bij het updaten van alle pakketten van het oude project – ik raad het gebruik van npm audit fixof npm i --forceten zeerste af. Het verwijderen van de package-lock.jsonwerkte ook niet altijd voor mij. Terugdraaien naar de werkende versie van package.json + package-lock.jsonen pakketten toevoegen bleek voor mij de veiligste en snelste variant te zijn.


Antwoord 16

Ik heb dit opgelost door de versie van Node te verlagen van de laatste versie naar de LTS-versie


Antwoord 17

Voor het geval dat ik soortgelijk gedrag vertoonde toen ik ofwel npm upgrademijn huidige op Angular 11.x gebaseerde boilerplate van vorige ng newprobeerde of een nieuwe ng new abcgebaseerd op Angular 12.x. Ik ben gewoon vergeten Angular CLI te upgraden. Dus deze npm install -g @angular/cli@latestloste mijn fouten op tijdens ng new abc.


Antwoord 18

Voor degenen die fouten krijgen tijdens het installeren van Bootstrap Paginator of table next

npm install react-bootstrap-table2-paginator --save

of

npm install react-bootstrap-table-next --save

Oplossing:
Voeg --legacy-peer-depstoe na het commando zoals

  • npm install react-bootstrap-table2-paginator --save --legacy-peer-deps
  • npm install react-bootstrap-table-next --save --legacy-peer-deps

Antwoord 19

Ik heb dit probleem vaak ondervonden, eindelijk heb ik een oplossing gevonden

        npm install react-native-paper  --legacy-peer-deps

Antwoord 20

Zelfs na het verwijderen/installeren van NPM en CLI als het nog steeds niet werkt, zorg er dan voor dat u zich in de projectmap bevindt. U hebt bijvoorbeeld een hoofdmap “mijntoepassing” gemaakt. Nu voert u de CLI-opdracht uit om een geheel nieuwe toepassing te maken onder de map myapplication. Na het uitvoeren van de opdracht krijgt u een foutmelding zoals “ERESOLVE kan de afhankelijkheidsboom niet oplossen“. Dus, in plaats van het commando uit te voeren in de myapplication-map, ga naar de nieuwe applicatiemap in de myapplication-map en voer de hoekige applicatie uit / voer deze uit. Het zou goed werken.


Antwoord 21

Het probleem houdt verband met een afhankelijkheidsconflict of verbroken afhankelijkheid. U kunt doorgaan door de onjuiste afhankelijkheid te accepteren door de installatie te forceren.

Oplossing:Commando gebruiken met --force.

Uw commando zal zijn als npm install --force @your-npm-package.

Opmerking:u kunt yarngebruiken om afhankelijkheid te installeren als deze beschikbaar is om te installeren met garenpakketbeheerder.


Antwoord 22

npm audit fix --force

Werkte voor mij


Antwoord 23

Doe gewoon een simpel ding:

npm install --save --legacy-peer-deps

Antwoord 24

Eindelijk gevonden oplossing

  • nvm installeren
  • gebruik nvm om node te installeren
  • voer cmd in om de lts-versie te gebruiken
  • nadat mijn installatie werkte, zou het ook voor jou moeten werken.

Antwoord 25

1.Afhankelijkheid toevoegen in package.json
2. npm installeren

Zie je de fout nog steeds?

  1. npm install –force

Antwoord 26

Ik had hetzelfde probleem

npm install --legacy-peer-deps 

Dit werkt ook voor de mijne. Maar ik heb een eenvoudiger antwoord. Wijzig gewoon het versienummer van in package.json dat vereist is. Gebruik dan

npm i

Dit lost uw probleem op (Genereer zoals gewoonlijk een nieuw project, zonder een mogelijk verbroken afhankelijkheidsprobleem.)


Antwoord 27

Begin eerst met de vlag npm i --legacy-peer-depsen gebruik daarna de vlag --force.

Other episodes