Node.js native addon build tool
node-gyp
är ett plattformsoberoende kommandoradsverktyg skrivet i Node.js för att kompilera native addon-moduler för Node.js, vilket gör att du slipper hantera de olika skillnaderna mellan olika plattformar. Det är en ersättning för node-waf
programmet som tas bort för node v0.8
. Om du har en infödd tilläggsmodul för node som fortfarande har en wscript
-fil bör du definitivt lägga till en binding.gyp
-fil för att stödja de senaste versionerna av node.
Flera målversioner av node stöds (t.ex. 0.8
, 0.9
, 0.10
, …, 1.0
osv.), oavsett vilken version av node som faktiskt är installerad i ditt system (node-gyp
hämtar de nödvändiga utvecklingsfilerna för målversionen).
Funktioner:
- Lätt att använda, konsekvent gränssnitt
- Samma kommandon för att bygga din modul på alla plattformar
- Stöder flera målversioner av Node
Installation
Du kan installera med npm
:
$ npm install -g node-gyp
Du måste också installera:
- På Unix:
-
python
(v2.7
rekommenderas,v3.x.x
stöds inte) make
- En riktig C/C++ kompilatorverktygskedja, som GCC
-
- På Windows:
- Python (
v2.7.3
rekommenderas,v3.x.x
stöds inte) - Windows XP/Vista/7:
- Microsoft Visual Studio C++ 2010 (Express-versionen fungerar bra)
- För 64-bitarsbyggen av node- och inbyggda moduler behöver du också Windows 7 64-bit SDK
- Om installationen misslyckas kan du försöka avinstallera C++ 2010 x64&x86 Redistributable som du har installerat först.
- Om du får felmeddelanden om att 64-bitskompilatorerna inte är installerade kan du också behöva kompilatoruppdateringen för Windows SDK 7.1
- Windows 7/8:
- Microsoft Visual Studio C++ 2012 for Windows Desktop (Express-versionen fungerar bra)
- Python (
Bemärk att OS X bara är en variant av Unix och att det därför behövs python
, make
och C/C++.Ett enkelt sätt att få tag på dessa är att installera XCode från Apple och sedan använda den för att installera kommandoradsverktygen (under Preferences -> Downloads).
How to Use
För att kompilera ditt infödda tillägg går du först till dess rotkatalog:
$ cd my_node_addon
Nästkommande steg är att generera lämpliga projektbyggfiler för den aktuella plattformen. Använd configure
för det:
$ node-gyp configure
Anmärkningar: Steg configure
letar efter filen binding.gyp
i den aktuella katalogen för att bearbeta den. Se nedan för instruktioner om hur du skapar binding.gyp
-filen.
Nu har du antingen en Makefile
(på Unix-plattformar) eller en vcxproj
-fil (på Windows) i build/
-katalogen. Anropa sedan kommandot build
:
$ node-gyp build
Nu har du din kompilerade .node
bindningsfil! De kompilerade bindningarna hamnar i build/Debug/
eller build/Release/
, beroende på byggläge. Nu kan du kräva .node
-filen med Node och köra dina tester!
Observera: För att skapa en Debug-byggnad av bindningsfilen, ange växeln --debug
(eller-d
) när du kör kommandot configure
eller build
.
Filen ”bindning.gyp”
Förut när Node hade node-waf
var du tvungen att skriva en wscript
-fil. I stället för detta finns binding.gyp
-filen, som beskriver konfigurationen för att bygga din modul i ett JSON-liknande format. Denna fil placeras i roten av ditt paket, tillsammans med package.json
-filen.
En barebones gyp
-fil som är lämplig för att bygga ett nodtillägg ser ut som:
{ "targets": } ]}
Några ytterligare resurser för att skriva gyp
-filer:
- ”Hello World” nodtilläggsexempel
- gyp användardokumentation
- gyp inmatningsformatreferens
- ”binding.gyp” files out in the wild wiki page
Kommandon
node-gyp
svarar på följande kommandon:
Command | Description |
---|---|
build |
Invocerar make /msbuild.exe och bygger det inhemska tillägget |
clean |
Removes any the build dir if it exists |
configure |
Generates project build files for the current platform |
rebuild |
Runs ”clean”, ”configure” och ”build” i en följd |
install |
Installerar nodutvecklingsheaderfiler för den givna versionen |
list |
Listar de för närvarande installerade versionerna av nodutvecklingsfiler |
remove |
Removes the node development header files for the given version |
License
(The MIT License)
Copyright (c) 2012 Nathan Rajlich <[email protected]>
Permission is hereby granted, gratis, till varje person som erhåller en kopia av denna programvara och tillhörande dokumentationsfiler (programvaran), att handla med programvaran utan begränsning, inklusive, utan begränsning, rätten att använda, kopiera, modifiera, sammanfoga, publicera, distribuera, underlicensiera och/eller sälja kopior av programvaran, och att tillåta personer till vilka programvaran tillhandahålls att göra detta, med förbehåll för följande villkor:
Ovanstående meddelande om upphovsrätt och detta meddelande om tillstånd skall finnas med i alla kopior eller väsentliga delar av programvaran.
MJUKVARAN TILLHANDAHÅLLS ”I BEFINTLIGT SKICK”, UTAN NÅGON FORM AV GARANTI, UTTRYCKLIG ELLER UNDERFÖRSTÅDD, INKLUSIVE MEN INTE BEGRÄNSAT TILL GARANTIER FÖR SÄLJBARHET, LÄMPLIGHET FÖR ETT VISST ÄNDAMÅL OCH ICKE-ÖVERTRÄDELSE.FÖRFATTARNA ELLER UPPHOVSRÄTTSINNEHAVARNA SKA UNDER INGA OMSTÄNDIGHETER HÅLLAS ANSVARIGA FÖR KRAV, SKADOR ELLER ANNAT ANSVAR, VARE SIG I EN KONTRAKTSRÄTTSLIG, SKADESTÅNDSRÄTTSLIG ELLER ANNAN HANDLING, SOM HÄRRÖR FRÅN, UR ELLER I SAMBAND MED PROGRAMVARAN ELLER ANVÄNDNINGEN ELLER ANNAN HANTERING AV PROGRAMVARAN.