Jeg har en node-pakke. Når jeg kjører npm install
fra pakkeroten, installerer den en haug med ting, men skriver deretter ut flere feilmeldinger som ser slik ut:
npm WARN unmet dependency /Users/seanmackesey/google_drive/code/explore/generator/node_modules/findup-sync/node_modules/glob requires graceful-fs@'~1.2.0' men vil laste inn
Jeg må være forvirret om hva npm install
gjør. Hvis den oppdager en avhengighet, burde den ikke installere den? Under hvilke forhold gir det meg feilmeldinger som dette, og hvordan kan jeg løse avhengighetene?
Jeg tror det er fordi avhengighetsresolusjonen er litt ødelagt, se https://github.com/npm/npm/issues/1341#issuecomment-20634338
Følgende er den mulige løsningen:
Manuelt trenger å installere toppnivåmodulene, som inneholder uoppfylte avhengigheter:
npm install [email protected]
Re-strukturere din package.json. Plasser alle høynivåmoduler (fungerer som en avhengighet for andre moduler) nederst.
Kjør kommandoen npm install
på nytt.
Problemet kan skyldes at npm ikke klarer å laste ned hele pakken på grunn av tidsavbrudd eller noe annet.
Merk: Du kan også installere de mislykkede pakkene manuelt ved å bruke npm install [email protected]
.
Før du kjører npm install
, kan det hjelpe å utføre følgende trinn:
rm -rf node_modules/
.npm cache clean
Hvorfor er det noen ganger nødvendig å fjerne node_modules?
Når en nestet modul ikke installeres under npm install
, vil påfølgende npm install
ikke oppdage de manglende nestede avhengighetene.
Hvis det er tilfelle, er det noen ganger tilstrekkelig å fjerne toppnivåavhengigheten til de manglende nestede modulene, og kjøre npm install
igjen. Se
Svarene ovenfor hjalp meg ikke helt selv etter å ha slettet node_modules
-katalogen.
Kommandoen nedenfor hjalp meg til slutt:
npm config set registry http://registry.npmjs.org/
Merk at dette trekker nodemoduler over en usikker HTTP-tilkobling.