Korzystam z systemu Windows 10 z węzłem 5.6.0 i npm 3.6.0. Próbuję zainstalować materiał kątowy i mdi w moim folderze roboczym. npm zainstaluj błędy mdi-material mdi z:
+-- angular@1.5.0
+-- UNMET PEER DEPENDENCY angular-animate@^1.5.0
+-- UNMET PEER DEPENDENCY angular-aria@^1.5.0
+-- angular-material@1.0.6
+-- UNMET PEER DEPENDENCY angular-messages@^1.5.0 `-- mdi@1.4.57
npm WARN enoent ENOENT: no such file or directory, open
'C:\Users\xxxxx\Desktop\ngClassifieds\package.json'
npm WARN angular-material@1.0.6 requires a peer of
angular-animate@^1.5.0 but none was installed.
npm WARN angular-material@1.0.6 requires a peer of angular-aria@^1.5.0
but none was installed.
npm WARN angular-material@1.0.6 requires a peer of
angular-messages@^1.5.0 but none was installed.
Jak rozwiązać ten problem, aby zainstalować AngularJS Material i MDI?
Odpowiedzi:
npm nie instaluje już zależności równorzędnych, więc musisz zainstalować je ręcznie, po prostu wykonaj
npm install
niezbędne operacje, a następnie spróbuj ponownie zainstalować główną.Odpowiedz na komentarz:
jest dokładnie w tym komunikacie, mówi, które zależności brakuje
Więc musisz
npm install angular angular-animate angular-aria angular-material angular-messages mdi
źródło
package.json
?--save
przełącznik npm, zaktualizuje pakiet.json dla ciebie (lub--save-dev
jeśli pakiet jest zależny od rozwoju)UNMET PEER DEPENDENCY
błąd jest zgłaszany, gdy zależności jednego lub więcej modułów określonych wpackage.json
pliku nie są spełnione. Dokładnie sprawdź ostrzeżenia i zaktualizujpackage.json
plik, dodając poprawne wersje zależności.Następnie uruchomić
Spowoduje to prawidłowe zainstalowanie wszystkich wymaganych zależności.
źródło
W moim przypadku wszystkie zależności już tam były. W takim przypadku zaktualizuj NPM , ponieważ mógł ulec awarii. To rozwiązało mój problem.
źródło
UNMET PEER DEPENDENCY typescript
Podczas próby instalacji wystąpił błądtslint
. po aktualizacji npm musiałem najpierw zainstalować maszynopis, a następnie zainstalować tslint.Npm-install-peers pracował dla mnie.
źródło
Jedną z najbardziej prawdopodobnych przyczyn tego błędu może być zdefiniowanie starszej wersji w pliku package.json. Aby rozwiązać ten problem, zmień wersje w pliku package.json, aby były zgodne z tymi, na które narzeka.
Po zakończeniu uruchom npm install i voila !!.
źródło
Ta odpowiedź nie dotyczy wszystkich przypadków, ale jeśli nie możesz rozwiązać błędu po prostu wpisując
npm install
, te kroki mogą pomóc.Powiedzmy, że masz ten błąd.
Oznacza to, że zainstalowałeś wersję 4.2.0 pakietu A, ale pakiet [email protected] wymaga wersji 3.xx pakietu A. ( wyjaśnienie ^ )
Możesz więc rozwiązać ten problem, obniżając pakiet A do wersji 3.xx, ale zazwyczaj nie chcesz obniżać pakietu.
Dobra wiadomość jest taka, że w niektórych przypadkach pakiet B po prostu nie dotrzymuje kroku pakietowi A, a opiekun pakietu B stara się podnieść zależność rówieśniczą pakietu A do 4.xx
W takim przypadku można sprawdzić, czy istnieje wyższa wersja pakietu B, która wymaga wersji 4.2.0 pakietu A w npm lub github.
Na przykład Idź do strony wydania
Często można znaleźć przełomowe zmiany dotyczące zależności.
Jeśli nie znajdziesz niczego na stronie wydania, przejdź do strony wydania i wyszukaj problem według słowa kluczowego jak
peer
. Możesz znaleźć przydatne informacje.W tym momencie masz dwie opcje.
1) Uaktualnij do żądanej wersji
2) Na razie zostaw błąd, poczekaj na wydanie stabilnej wersji.
Jeśli wybierzesz opcję 1:
W wielu przypadkach wersja nie ma
latest
znacznika, dlatego nie jest stabilna. Musisz więc sprawdzić, co się zmieniło w tej aktualizacji i upewnić się, że nic się nie zepsuje.Jeśli wybierzesz opcję 2:
Jeśli aktualizacja pakietu A z wersji 3 do 4 jest trywialna lub jeśli opiekun pakietu B nie przetestował jeszcze wersji 4 pakietu A, ale twierdzi, że nie powinno to stanowić problemu, możesz rozważyć pozostawienie błędu.
W obu przypadkach najlepiej dokładnie sprawdzić, czy niczego nie psuje.
Na koniec, jeśli chcesz wiedzieć, dlaczego musisz zrobić coś takiego ręcznie, ten link dobrze wyjaśnia.
źródło
Ok, więc długo walczyłem, próbując to rozgryźć. Oto opcja nuklearna , gdy wyczerpiesz wszystkie inne sposoby ...
Gdy skończysz i nadal będzie działać, zaimportuj swój kod do nowego projektu. Napraw wszelkie błędy kompilacji w nowszej wersji przyczyn kątowych.
To właśnie to dla mnie zrobiło .. 1 godzina przeróbki w porównaniu do 6 godzin próbowania zrozumienia wtf była błędna .. szkoda, że nie zrobiłem tego w ten sposób, aby zacząć ...
źródło
Podana odpowiedź nie zawsze będzie działać. Jeśli to nie rozwiąże problemu. Upewnij się, że używasz również właściwego symbolu w swoim
package.json
. Jest to bardzo ważne, aby naprawić ten ból głowy. Na przykład:Więc mój maszynopis musi mieć wartość od 2.4.2 do 2.6, prawda?
Więc zmieniłem bibliotekę maszynopisów z używania
"typescript": "^2.7"
na używanie"typescript": "^2.5"
. Wydaje się poprawny?Źle.
Te
^
środki, które są w porządku z użyciem npm"typescript": "2.5"
lub"2.6"
lub"2.7"
etc ...Jeśli chcesz się dowiedzieć, co to znaczy
^
i~
co oznacza: Jaka jest różnica między tyldą (~) a karetką (^) w pliku package.json?Musisz także upewnić się, że pakiet istnieje. Może nie ma
"typescript": "2.5.9"
numerów numerów pakietów. Aby być naprawdę bezpiecznym, po prostu usuń~
lub^
jeśli nie chcesz przeczytać, co one oznaczają.źródło
library-one
) Używa np. Peer ofpackage@<2.6
a druga (library-two
) peer zpackage@>2.7
? Czy w takim razie skończę z dwiema wersjamipackage
mojego kodu? Skąd mam wiedzieć, że kiedy go używam,library-one
muszę go używać,[email protected]
tymczasem kiedy go używam,library-two
muszę go używać[email protected]
?Dzisiaj dostępny Angular 2 rc.7 , a ja miałem podobny problem z
[email protected]
UNMET PEER DEPENDENCY.Jeśli, tak jak ja, po prostu wymienić
@angular/...rc.6
się@angular/...rc.7
- to nie wystarczy. Ponieważ na przykład@angular/router
nie marc.6
wersji.W takim przypadku lepiej przejrzyj pakiet.json w Szybki start
źródło
można rozwiązać, instalując zależności UNMET globalnie.
przykład: npm install -g @ angular / common @ 4.4.6
zainstaluj jeden po drugim. to zadziałało dla mnie.
źródło