Zauważyłem, że próbując uzyskać pozornie proste pakiety węzłów do zainstalowania z npm (np. nerve, "mikro-framework") często napotykam na pewien rodzaj bólu zależności. Po kilku kopaniu, wyśledziłem problem z nerwem do modułu bcrypt, który jest najwyraźniej napisany w C/C++ i musi zostać skompilowany po pobraniu go przez menedżera pakietów.Node.js/npm - czy mimo to stwierdzić, czy pakiet jest czystym JS czy nie?
Niestety, wygląda na to, że jeśli chcesz, aby to działało w systemie Windows, odpowiedzią jest (z jednego z wątków problemów bcrypt) "zainstaluj maszynę wirtualną Linux". Więc wcześniej zrobiłem to, i zacząłem działać w innych zależnościach (musisz zainstalować certain unnamed apt packages, zanim będziesz mógł pomyśleć o budowaniu, pomimo zainstalowania GCC), a następnie po zobaczeniu kolejnego błędu kompilatora C (o jakimś pakiecie lub innym nie będącym jestem w stanie znaleźć "Arrays.c", tak myślę), faktycznie zrezygnowałem i przełączyłem się z nerwu, by wyrazić zamiast tego. Jak na ironię, większe i bardziej skomplikowane ekspresowe instalacje z npm na Linux i Windows bez jednego problemu.
Moje pytanie brzmi: czy istnieje dostępne śledzenie filtra/zależności, które pozwala sprawdzić, czy pakiet ma dodatkowe zależności oprócz jądra węzła? Ponieważ dla mnie urok węzła to "wszystko w JavaScript", a tego rodzaju rzeczy rozpraszają iluzję dość nieprzyjemnie. W rzeczywistości, mimo że pracowałem więcej niż w C/C++, ilekroć widzę wymóg "zrobienia" czegoś w tych dniach, generalnie biegam w przeciwnym kierunku, krzycząc. :)
Czuję twój ból Dave, ale czasami jesteśmy zmuszeni do c/C++ przez optymalizację i zapotrzebowanie na zasoby.Po pracy nad kilkoma natywnymi modułami węzła i próbach nie powtarzania czegokolwiek i używania rozsądnych zależności, natknąłem się na szereg problemów. Być może najbardziej racjonalne moduły węzłów to te, które wywołują lub wykonują natywny kod, a nie kompilują go i łączą z nim. –