Node.js native addon build tool
node-gyp
er et kommandolinjeværktøj på tværs af platforme skrevet i Node.js til at kompilere native addon-moduler til Node.js, hvilket fjerner besværet med at håndtere de forskellige forskelle i build-platforme. Det er en erstatning for node-waf
programmet, som er fjernet for node v0.8
. Hvis du har en native addon til node, der stadig har en wscript
-fil, bør du helt sikkert tilføje en binding.gyp
-fil for at understøtte de nyeste versioner af node.
Der understøttes flere målversioner af node (dvs. 0.8
, 0.9
, 0.10
, …, 1.0
osv.), uanset hvilken version af node der faktisk er installeret på dit system (node-gyp
henter de nødvendige udviklingsfiler til målversionen).
Funktioner:
- Nemt at bruge, konsistent grænseflade
- Samme kommandoer til at bygge dit modul på alle platforme
- Understøtter flere målversioner af Node
Installation
Du kan installere med npm
:
$ npm install -g node-gyp
Du skal også installere:
- På Unix:
-
python
(v2.7
anbefales,v3.x.x
understøttes ikke) make
- En ordentlig C/C++ compiler-værktøjskæde, som GCC
-
- På Windows:
$ npm install -g node-gyp
Du skal også installere:
-
- Python (
v2.7.3
anbefales,v3.x.x
er ikke understøttet) - Windows XP/Vista/7:
- Microsoft Visual Studio C++ 2010 (Express-versionen fungerer godt)
- For 64-bit builds af node- og native moduler skal du også bruge Windows 7 64-bit SDK
- Hvis installationen mislykkes, skal du prøve at afinstallere enhver C++ 2010 x64&x86 Redistributable, som du har installeret, først.
- Hvis du får fejl om, at 64-bit compilere ikke er installeret, har du muligvis også brug for compileropdateringen til Windows SDK 7.1
- Windows 7/8:
- Microsoft Visual Studio C++ 2012 for Windows Desktop (Express-versionen fungerer godt)
- Python (
Bemærk, at OS X blot er en variant af Unix og derfor har brug for python
, make
og C/C++.En nem måde at få disse på er at installere XCode fra Apple,og derefter bruge den til at installere kommandolinjeværktøjerne (under Preferences -> Downloads).
Sådan bruger du
For at kompilere din native tilføjelse skal du først gå til dens rodmappe:
$ cd my_node_addon
Det næste trin er at generere de relevante projektbygningsfiler til den aktuelle platform. Brug configure
til det:
$ node-gyp configure
Bemærk: Trin configure
leder efter filen binding.gyp
i den aktuellemappe til processs. Se nedenfor for instruktioner om oprettelse af binding.gyp
-filen.
Nu har du enten en Makefile
(på Unix-platforme) eller en vcxproj
-fil(på Windows) i build/
-mappen. Dernæst påkalder du kommandoen build
:
$ node-gyp build
Nu har du din kompilerede .node
bindingsfil! De kompilerede bindinger ender i build/Debug/
eller build/Release/
, afhængigt af byggetilstand. På dette tidspunkt kan du kræve .node
-filen med Node og køre dine tests!
OBS: For at oprette en Debug-bygning af bindingsfilen, skal du indsætte kontakten --debug
(eller-d
), når du kører enten configure
eller build
-kommandoen.
Filen “binding.gyp”
Tidligere, da Node havde node-waf
, skulle du skrive en wscript
-fil. I stedet for det er binding.gyp
-filen, som beskriver konfigurationen til at bygge dit modul i et JSON-lignende format. Denne fil placeres i roden af din pakke, sammen med filen package.json
.
En barebones gyp
-fil, der er velegnet til at bygge en nodetilføjelse, ser således ud:
{ "targets": } ]}
Nogle yderligere ressourcer til at skrive gyp
-filer:
- “Hello World” nodetilføjelse eksempel
- gyp brugerdokumentation
- gyp inputformat reference
- “binding.gyp” filer out in the wild wikiside
Kommandoer
node-gyp
reagerer på følgende kommandoer:
Kommando | Beskrivelse |
---|---|
build |
Invokerer make /msbuild.exe og bygger den native addon |
clean |
Fraser enhver build dir, hvis den findes |
configure |
Genererer projektopbygningsfiler til den aktuelle platform |
rebuild |
Kører “clean”, “configure” og “build” i træk |
install |
Installerer nodeudviklingsheaderfiler for den givne version |
list |
Lister over de aktuelt installerede nodeudviklingsfilversioner |
remove |
Fjerne nodeudviklingsheaderfilerne for den givne version |
Licens
(MIT-licensen)
Copyright (c) 2012 Nathan Rajlich <[email protected]>
Permission er hermed givet, gratis til enhver person, der modtager en kopi af denne software og tilhørende dokumentationsfiler (softwaren), til at handle med softwaren uden begrænsning, herunder uden begrænsning retten til at bruge, kopiere, ændre, sammenføje, offentliggøre, distribuere, underlicensere og/eller sælge kopier af softwaren og til at tillade personer, som softwaren leveres til, at gøre dette, med forbehold af følgende betingelser:
Overstående meddelelse om ophavsret og denne meddelelse om tilladelse skal være indeholdt i alle kopier eller væsentlige dele af softwaren.
SOFTWAREN LEVERES “SOM DEN ER”, UDEN NOGEN FORM FOR GARANTI, UDTRYKKELIG ELLER UNDERFORSTÅET, HERUNDER, MEN IKKE BEGRÆNSET TIL, GARANTIERNE FOR SALGBARHED, EGNETHED TIL ET BESTEMT FORMÅL OG IKKE-KRÆNKELSE. UNDER INGEN OMSTÆNDIGHEDER ER FORFATTERNE ELLER INDEHAVERNE AF OPHAVSRETTEN ANSVARLIGE FOR KRAV, SKADER ELLER ANDET ANSVAR, UANSET OM DET ER I ET KONTRAKTLIGT, ERSTATNINGSRETLIGT ELLER ANDET, DER OPSTÅR AF, UD AF ELLER I FORBINDELSE MED SOFTWAREN ELLER BRUGEN ELLER ANDEN HANDEL MED SOFTWAREN.