Zaznaczona odpowiedź jest całkowicie błędna. Wszystko, co robi, to ukrywanie instrukcji dziennika konsoli i nic nie robi, aby rozwiązać faktyczny problem. Możesz także zamknąć oczy, a osiągniesz ten sam efekt.
Problem jest spowodowany przez node-gyp i tylko to. Jego celem jest kompilacja natywnych rozszerzeń dla określonych modułów, takich jak bson.
Jeśli nie udaje mu się tak wtedy kod będzie awaryjne wersji JS i łaskawie powiedzieć więc poprzez komunikat informacyjny:
Failed to load c++ bson extension, using pure JS version
Zakładam, że tak naprawdę chodzi o to, jak skompilować natywne rozszerzenie C ++, a nie tylko nie widzieć wiadomości, więc zajmijmy się tym.
Aby node-gyp działał, twój node-gyp musi być na bieżąco z twoim węzłem i kompilatorem C ++ (który będzie się różnić w zależności od twojego systemu operacyjnego). Co równie ważne, Twój moduł musi być aktualny.
Najpierw odinstaluj i ponownie zainstaluj node-gyp
npm un node-gyp -g;npm i node-gyp -g
Teraz będziesz musiał w pełni odinstalować i ponownie zainstalować dowolny moduł węzła w swojej aplikacji (w tym również moduły zainstalowane przez wymagania), które mają bson. To powinno rozwiązać problem. Możesz wyszukać „Release / bson” i znaleźć winowajców.
find node_modules/ -type 'f' -exec grep -H 'Release/bson' {} \;
Następnie odinstaluj i ponownie zainstaluj te moduły.
Łatwiej jest po prostu powtórzyć cały node_modules
folder:
rm -rf node_modules
npm cache clear
npm i
Jeśli nadal występują problemy, to albo 1) twój moduł jest nieaktualny - sprawdź tracker problemów w ich repozytorium lub 2) masz potencjalny konflikt - czasami możemy mieć na przykład lokalny węzeł gyp. Możesz działać node-gyp
samodzielnie i weryfikować wersje.