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-wafprogrammet 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)

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.

Lämna ett svar

Din e-postadress kommer inte publiceras.