javascript - Når man installerer pakker med Yarn, hva betyr "incorrect peer dependency"?


Jeg har akkurat klonet et repo, som anbefaler bruk av Yarn for å installere avhengigheter. Når jeg kjører yarn install, ser det ut til å gå bra, men det gir denne advarselen:

yarn install v0.20.3
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
warning "[email " has incorrect peer dependency "node-sass@^3.4.2".
[4/4] 📃  Building fresh packages...
✨  Done in 77.59s.

Jeg har sett på nettet for å finne ut nøyaktig hva "has incorrect peer dependency" betyr. Men alt jeg finner er rapporterte problemer på andre repoer eller spørsmål om hvordan man kan fikse problemet.

Kan noen forklare hva dette betyr og hvorfor det bare er en advarsel, og ikke en feil?

Er det også noe jeg bør prøve å ta opp eller rapportere til fellesskapet bak repositoriet jeg nettopp har klonet?

Svar #1

Det er bare en advarsel siden den faktisk ikke vil stoppe koden din fra å kjøre. Den er bare der for å gi deg en pekepinn om at det er noe galt med avhengighetene dine.

Effektivt sett er peer-avhengigheter en måte for pakker å spesifisere på: «For å bruke meg, bør du også ha x-versjonen av y-pakken installert».

Du bør oppgradere til de nyeste versjonene, se denne lenken for mer informasjon om sass-loader-avhengigheter

Svar #2

Jeg tror det finnes pakker der det ikke gjør så stor forskjell (hvis de ikke eksponeres i appen din eller ikke sannsynligvis forårsaker problemer med konflikterende versjoner, f.eks. moment.js), men så finnes det pakker, som React, der det betyr noe at alle React-avhengigheter er kompatible med hverandre, ettersom de kan lage komponenter som må forstå hverandre.

I ditt tilfelle bruker sannsynligvis en av avhengighetene dine sass-loader i en annen versjon enn det du spesifiserer i prosjektet ditt.

Ved å erklære det som en peerDependency kan du fortelle npm hvilken versjon prosjektet ditt forventer, og det vil gi deg en advarsel (som du så) når det oppstår en konflikt.

Relaterte artikler