2017-04-26 10 views
5

Mam problemy z javascript związane z reagowaniem. Jest to błąd złapany przez chromowane strona jest świadczenie:UNMET PEER DEPENDENCY z reakcją

Uncaught TypeError: Super expression must either be null or a function, not undefined 
at _inherits (application.js:16301) 
at application.js:16310 
at Object.232.prop-types (application.js:16549) 
at s (application.js:1) 
at application.js:1 
at Object.233../Collapse (application.js:16574) 
at s (application.js:1) 
at application.js:1 
at Object.1.react (application.js:78) 
at s (application.js:1) 

Kiedy mam zainstalować mój reagować używając KMP narzeka na wzajemnych zależnościach reagować i reagowania-height:

├─┬ UNMET PEER DEPENDENCY [email protected] 
│ ├─┬ [email protected] 
│ │ └─┬ [email protected] 
│ │ ├── [email protected] 
│ │ ├─┬ [email protected] 
│ │ │ ├─┬ [email protected] 
... 

I:

├─┬ UNMET PEER DEPENDENCY [email protected] 
│ └─┬ [email protected] 
│ └─┬ [email protected] 
│  └── [email protected] 

Potem zmieniłem plik package.json do:

"react": "0.14.9", 
"react-bootstrap": "^0.28.1", 
"react-collapse": "^2.2.1", 
"react-dom": "^0.14.3", 
"react-height": "2.2.1", 
... 

Po tych zmianach usunąłem całkowicie folder node_modules z rm -rf, wyczyściłem cache npm i ponownie zainstalowałem.

BARDZO SAMY problem nadal występuje. Zauważam 2 ostrzeżenia:

npm WARN [email protected] requires a peer of [email protected]>=15.3 but none was installed. 
npm WARN [email protected] requires a peer of [email protected]^3 but none was installed. 

Czy jest problem z aktualizacją pakietów lub problem związany z samą reakcją?

+0

Twoja wersja reagowania jest nieaktualna. 'wymaga peera reakcji @> = 15,3", twoja zainstalowana wersja to '0.14.9'. – evolutionxbox

+0

Wykonałem pełną aktualizację, a problem z niepokojącym typerrorem nadal występuje. – learner

Odpowiedz

3

Twoja wersja react nie spełnia wymagań react-collapse. To tak naprawdę nie oznacza, że ​​oba pakiety nie mogą ze sobą współpracować, po prostu spróbuj i jeśli wszystko działa zgodnie z przeznaczeniem.

Ale jeśli trzeba naprawić, że masz dwa sposoby działania, które:

Pierwszy sposób

Usuń "react": "0.14.9", linii i uruchom npm i --save react. NPM zainstaluje najnowszy pakiet reagowania. Błąd powinien zostać naprawiony.


Drugi sposób

Jeśli naprawdę trzeba użyć 0.14.9 wersję należy znaleźć react-collapse wersję, która jest kompatybilny z twoją wersją reactjs.

Aby to zrobić, wpisz konsolę npm show react-collapse versions - pojawi się rekord z rekordów.

Teraz musimy wybrać jedną wcześniejszą wersję i sprawdzić peerDependencies naszego wybranego pakietu.

Używamy polecenia npm view [email protected], wynik będzie

enter image description here

Ponieważ wybraliśmy @3.0.0 wersję, która jest ok w naszym przypadku musimy go zainstalować. Następujące polecenie wykona pracę npm install --save [email protected].

UPDATE

Jeśli powyższe rozwiązanie nie działa. Proszę zainstalować brakujące peerDependencies ręcznie przez npm i --save <package-name>.

wyjaśnieniu:

sprawdzić wersję npm robi npm -v. Jeśli twoja wersja jest> 3, oznacza to, że zależności peer muszą być zainstalowane ręcznie. Myślę, że jest to przypadek, wersja 3.0.0 został wydany w połowie 2015

Automatyczna instalacja wzajemnych zależnościach został wyraźnie usunięty z KMP 3, jak to spowodować więcej problemów niż to starał się rozwiązać.

Proszę przeczytać official npm changelog, szukasz sekcji "łamanie zmian".

Istnieje CLI tool, który automatycznie instaluje pakiet NPM i jego zależności równorzędne. Możesz być zainteresowany.

+0

Zrobiłem pełną aktualizację. Zmieniono moje pliki package.json, a problem Uncaught typeerror nie ustępuje. – learner

+0

Zaktualizowałem moją odpowiedź, zobacz ją teraz, jeśli ci to pomoże. – loelsonk

Powiązane problemy