Node.js native addon build tool
node-gyp
is een cross-platform command-line tool geschreven in Node.js voor het compileren vannative addon modules voor Node.js, die de pijn wegneemt van het omgaan met de verschillende verschillen in build platformen. Het is de vervanging van het node-waf
programma dat is verwijderd voor node v0.8
. Als u een native addon voor node heeft die nog steeds een wscript
bestand heeft, dan moet u zeker een binding.gyp
bestand toevoegen om de laatste versies van node te ondersteunen.
Meerdere doelversies van node worden ondersteund (d.w.z. 0.8
, 0.9
, 0.10
, …, 1.0
, enz.), ongeacht welke versie van node daadwerkelijk op uw systeem is geïnstalleerd (node-gyp
downloadt de noodzakelijke ontwikkelingsbestanden voor de doelversie).
Features:
- Gemakkelijk te gebruiken, consistente interface
- Zelfde commando’s om uw module te bouwen op elk platform
- Ondersteunt meerdere doelversies van Node
Installatie
U kunt installeren met npm
:
$ npm install -g node-gyp
U zult ook moeten installeren:
- Op Unix:
-
python
(v2.7
aanbevolen,v3.x.x
wordt niet ondersteund) make
- Een goede C/C++ compiler toolchain, zoals GCC
-
- Op Windows:
- Python (
v2.7.3
aanbevolen,v3.x.x
wordt niet ondersteund) - Windows XP/Vista/7:
- Microsoft Visual Studio C++ 2010 (Express-versie werkt goed)
- Voor 64-bits builds van node en native modules hebt u ook de Windows 7 64-bits SDK nodig
- Als de installatie mislukt, probeer dan eerst de C++ 2010 x64&x86 Redistributable die u hebt geïnstalleerd te verwijderen.
- Als u de foutmelding krijgt dat de 64-bits compilers niet zijn geïnstalleerd, hebt u mogelijk ook de compilerupdate voor de Windows SDK 7 nodig.1
- Windows 7/8:
- Microsoft Visual Studio C++ 2012 voor Windows Desktop (Express-versie werkt goed)
Merk op dat OS X slechts een smaak van Unix is en dus
python
,make
, en C/C++ nodig heeft.Een makkelijke manier om deze te verkrijgen is om XCode van Apple te installeren, en dan te gebruiken om de command line tools te installeren (onder Voorkeuren -> Downloads).Hoe te gebruiken
Om uw native addon te compileren, gaat u eerst naar de root directory:
$ cd my_node_addon
De volgende stap is om de juiste project build files te genereren voor het huidige platform. Gebruik daarvoor
configure
:$ node-gyp configure
Note: De
configure
stap zoekt naar hetbinding.gyp
bestand in de huidige directory om te verwerken. Zie hieronder voor instructies over het maken van hetbinding.gyp
bestand.Nu heeft u ofwel een
Makefile
(op Unix platforms) of eenvcxproj
bestand (op Windows) in debuild/
directory. Roep vervolgens hetbuild
commando op:$ node-gyp build
Nu heeft u uw gecompileerde
.node
bindings bestand! De gecompileerde bindings eindigen inbuild/Debug/
ofbuild/Release/
, afhankelijk van de build mode. Op dit punt kunt u het.node
bestand met Node vereisen en uw tests uitvoeren!Note: Om een Debug build van het bindingsbestand te maken, geeft u de
--debug
(of-d
) schakeloptie door wanneer u hetconfigure
ofbuild
commando uitvoert.Het “binding.gyp” bestand
Voorheen, toen Node
node-waf
had, moest u eenwscript
bestand schrijven. De plaats daarvan is hetbinding.gyp
bestand, dat de configuratie beschrijft om uw module te bouwen in een JSON-achtig formaat. Dit bestand wordt in de root van uw pakket geplaatst, naast hetpackage.json
bestand.Een kaal
gyp
bestand geschikt voor het bouwen van een node addon ziet er als volgt uit:{ "targets": } ]}
Enkele aanvullende bronnen voor het schrijven van
gyp
bestanden:- “Hello World” node addon voorbeeld
- gyp gebruikersdocumentatie
- gyp input formaat referentie
- “binding.gyp” files out in the wild wiki page
Commands
node-gyp
reageert op de volgende commando’s:Command Description build
Oproept make
/msbuild.exe
en bouwt de native addonclean
Verwijdert de build
dir indien deze bestaatconfigure
Genereert project build bestanden voor het huidige platform rebuild
Draait “clean”, “configure” en “build” allemaal achter elkaar install
Installeert node development header files voor de gegeven versie list
Lijst met de momenteel geïnstalleerde node development file versies remove
Verwijdert de node-ontwikkelingsheaderbestanden voor de opgegeven versie Licentie
(De MIT-licentie)
Copyright (c) 2012 Nathan Rajlich <[email protected]>
Hierbij wordt toestemming verleend, gratis, aan iedereen die een kopie van deze software en bijbehorende documentatiebestanden (de ‘Software’) verkrijgt, om de Software zonder beperkingen te verhandelen, met inbegrip van, maar niet beperkt tot, het recht om kopieën van de Software te gebruiken, te kopiëren, te wijzigen, samen te voegen, te publiceren, te distribueren, in sublicentie te geven en/of te verkopen, en om personen aan wie de Software wordt geleverd, toestemming te verlenen om dit te doen, onder de volgende voorwaarden:
De bovenstaande copyrightvermelding en deze toestemmingsvermelding moeten worden opgenomen in alle kopieën of substantiële gedeelten van de Software.
DE SOFTWARE WORDT GELEVERD “ZOALS HET IS”, ZONDER GARANTIE VAN WELKE AARD DAN OOK, UITDRUKKELIJK OF IMPLICIET, MET INBEGRIP VAN MAAR NIET BEPERKT TOT DE GARANTIES VAN VERKOOPBAARHEID, GESCHIKTHEID VOOR EEN BEPAALD DOEL EN NIET-INBREUK.IN GEEN GEVAL ZULLEN DE AUTEURS OF DE HOUDERS VAN HET AUTEURSRECHT AANSPRAKELIJK ZIJN VOOR ENIGE VORDERING, SCHADE OF ANDERE AANSPRAKELIJKHEID, HETZIJ IN EEN ACTIE VAN CONTRACT, ONRECHTMATIGE DAAD OF ANDERSZINS, VOORTVLOEIEND UIT, UIT OF IN VERBAND MET DE SOFTWARE OF HET GEBRUIK OF ANDERE OMGANG MET DE SOFTWARE.
- Python (