Co to jest node-gyp

123

Czy ktoś może mi wyjaśnić, co to jest node-gypi dlaczego używa moich plików systemowych do tworzenia pakietów Node.JS.

  1. Jeśli zbuduję projekt węzła i użyję go node-gypwewnętrznie.
  2. Potem po prostu tarowałem ten projekt i przeniosłem się do innego systemu
  3. Rozpakowuję go tam i próbuję go użyć

Czy to podejście zadziała?

selftaught91
źródło
17
Jest to opisane na jego stronie github: github.com/nodejs/node-gyp . Zasadniczo node-gypjest jak make. Jest to narzędzie służące do sterowania procesem kompilacji projektów w C ++. Tylko, że został zaprojektowany specjalnie dla dodatków node.js (moduły napisane w C ++). Tak więc przejście na inny system może działać, jeśli używa tego samego procesora. Przejście na inny system operacyjny lub procesor (na przykład z x86 na ARM) nie zadziała. W przypadku Linuksa przejście na inną dystrybucję innej wersji tej samej dystrybucji może, ale nie musi, działać. Nie jestem w 100% pewien, czy przejście na inną wersję node.js zadziała
slebetman
2
Kiedy uruchamiam yarn why node-gyp, wraca z: ponieważ node-sass, więc jestem pewien, że ma inne zastosowania, ale może być w twoim projekcie, jeśli zdiagnozowano u Ciebie lub kogoś, kogo kochasz sass.
Kzqai,
@slebetman przejście do innej wersji węzła nie zadziała, nie jestem pewien, czy to w 100% prawda, jednak z mojego doświadczenia wynika, że ​​musisz usunąć stary węzeł-gyp po aktualizacji wersji nodejs i podczas instalacji modułów jest on automatycznie przebudowywany w tle.
Lukas Liesis

Odpowiedzi:

134

node-gypto narzędzie, które kompiluje dodatki Node.js. Dodatki Node.js to natywne moduły Node.js napisane w C lub C ++, które w związku z tym muszą zostać skompilowane na twoim komputerze. Po skompilowaniu za pomocą narzędzi takich jak node-gyp, dostęp do ich funkcjonalności można uzyskać require(), podobnie jak w przypadku każdego innego modułu Node.js.

Jeśli zrobisz to, co sugerowałeś, moduł nie zadziała, będziesz musiał go skompilować / zbudować za pomocą node-gyp w systemie, do którego przeniosłeś program.

node-gyp: https://github.com/nodejs/node-gyp

Dodatki Node.js: https://nodejs.org/api/addons.html

vuza
źródło
28
Muszę przyznać, że widzę moduł bez npmjs, który używa node-gyp, zwykle biegam 10 mil stąd
PirateApp
38
To ekscytujące, że w dzisiejszych czasach możesz sklonować (wydaje się) stosunkowo prostą aplikację internetową napisaną w NodeJS, i nagle musisz pobrać oprogramowanie, aby skompilować natywny kod napisany w C i C ++. Najlepsze jest to, że napotykasz problemy i wiesz dokładnie, co zrobić ze swoimi umiejętnościami projektowania stron internetowych, aby je rozwiązać.
Jim Aho,
3
@ Mr-Programs Jest to połączone przez oprawę, którą również musisz
napisać
2
@JimAho Idealnie, i często kod jest po prostu w czarnej skrzynce. Zaletą jest to, że możesz używać szybkich i dobrze obsługiwanych narzędzi do robienia określonych rzeczy, takich jak parsowanie xml, i nie musisz czekać na port js, który może być wolniejszy lub bardziej zepsuty. To powiedziawszy, wolę natywny js, gdy tylko jest to możliwe, ale nie jestem pewien, czy ta pozycja jest dobrze uzasadniona. Ponadto C / C ++ powinien być bardzo przenośny w każdym przypadku, który nie jest celowo zależny od systemu operacyjnego (jak powiadomienia). Co więcej, pakiety podatne na błędy nie są powszechnie przyjmowane, niezależnie od źródła tych błędów.
Adam Tolley
3
Do Twojej wiadomości, uważam, że „gyp” to skrót od „generuj swoje projekty”
Tom