Node.js native addon build tool
node-gyp
je multiplatformní nástroj příkazového řádku napsaný v Node.js pro kompilacinative addon modulů pro Node.js, který odstraňuje problémy s různými rozdíly v kompilačních platformách. Jedná se o náhradu za program node-waf
, který je pro node v0.8
odstraněn. Pokud máte nativní doplněk pro node, kterýstále obsahuje soubor wscript
, pak byste určitě měli přidat soubor binding.gyp
pro podporu nejnovějších verzí node.
Podporováno je více cílových verzí node (tj. 0.8
, 0.9
, 0.10
, …, 1.0
,atd.), bez ohledu na to, jaká verze node je ve vašem systému skutečně nainstalována(node-gyp
stáhne potřebné vývojové soubory pro cílovou verzi).
Vlastnosti:
- Snadné použití, konzistentní rozhraní
- Stejné příkazy pro sestavení modulu na každé platformě
- Podpora více cílových verzí Node
Instalace
Můžete instalovat pomocí npm
:
$ npm install -g node-gyp
Budete také potřebovat nainstalovat:
- Na Unixu:
-
python
(v2.7
doporučeno,v3.x.x
není podporováno) make
- Vhodný řetězec nástrojů pro překladač C/C++, například GCC
-
- Na Windows:
- Python (
v2.7.3
doporučeno,v3.x.x
není podporováno) - V systému Windows XP/Vista/7:
- Microsoft Visual Studio C++ 2010 (dobře funguje verze Express)
- Pro 64bitová sestavení uzlů a nativních modulů budete potřebovat také 64bitový SDK pro Windows 7
- Pokud se instalace nezdaří, zkuste nejprve odinstalovat všechny nainstalované C++ 2010 x64&x86 Redistributable.
- Pokud se zobrazí chyby, že nejsou nainstalovány 64bitové kompilátory, budete možná potřebovat také aktualizaci kompilátoru pro Windows 7 SDK.1
- Windows 7/8:
- Microsoft Visual Studio C++ 2012 for Windows Desktop (dobře funguje verze Express)
- Python (
Poznamenejte, že OS X je jen příchutí Unixu, a proto potřebuje python
, make
a C/C++.Snadný způsob, jak je získat, je nainstalovat XCode od společnosti Apple,a pak pomocí něj nainstalovat nástroje příkazového řádku (v části Předvolby -> Stažené soubory).
Jak používat
Pro kompilaci nativního doplňku nejprve přejděte do jeho kořenového adresáře:
$ cd my_node_addon
Dalším krokem je vygenerování příslušných souborů pro sestavení projektu pro aktuálníplatformu. K tomu použijte configure
:
$ node-gyp configure
Poznámka: Krok configure
hledá v aktuálním adresáři soubor binding.gyp
, který má zpracovat. Pokyny k vytvoření souboru binding.gyp
naleznete níže.
Nyní budete mít v adresáři build/
buď soubor Makefile
(na platformách Unix), nebo vcxproj
(na platformách Windows). Dále vyvolejte příkaz build
:
$ node-gyp build
Teď máte zkompilovaný soubor s vazbami .node
! Zkompilované vazby končív build/Debug/
nebo build/Release/
, v závislosti na režimu sestavení. V tuto chvíli můžete soubor .node
vyžadovat pomocí uzlu a spustit testy!
Poznámka: Chcete-li vytvořit sestavení souboru vazeb v režimu Debug, předejte při spuštění příkazu configure
nebo build
přepínač --debug
(nebo-d
).
Soubor „binding.gyp“
Předtím, když měl uzel node-waf
, jste museli napsat soubor wscript
. Ten nahrazuje soubor binding.gyp
, který popisuje konfiguracipro sestavení modulu ve formátu podobném JSON. Tento soubor se umístí do kořenového adresáře vašeho balíčku vedle souboru package.json
.
Barebone gyp
soubor vhodný pro sestavení doplňku uzlu vypadá takto:
{ "targets": } ]}
Několik dalších zdrojů pro psaní gyp
souborů:
- „Hello World“ příklad doplňku uzlu
- gyp uživatelská dokumentace
- gyp reference formátu vstupu
- „binding.gyp“ soubory out in the wild wiki page
Příkazy
node-gyp
reaguje na následující příkazy:
Příkaz | Popis |
---|---|
build |
vyvolá make /msbuild.exe a sestaví nativní doplněk |
clean |
Odstraní jakýkoli build dir, pokud existuje |
configure |
Vytvoří soubory pro sestavení projektu pro aktuální platformu |
rebuild |
Spustí „čistý“, „configure“ a „build“ všechny za sebou |
install |
Instaluje vývojové hlavičkové soubory uzlu pro danou verzi |
list |
Seznam aktuálně nainstalovaných verzí vývojových souborů uzlu |
remove |
Odstraní vývojové hlavičkové soubory uzlu pro danou verzi |
Licence
(The MIT License)
Copyright (c) 2012 Nathan Rajlich <[email protected]>
Povolení je tímto uděleno, bezplatně každé osobě, která získá kopii tohoto softwaru a souvisejících dokumentačních souborů (dále jen „software“), nakládat se softwarem bez omezení, včetněbez omezení práv používat, kopírovat, upravovat, slučovat, publikovat,distribuovat, poskytovat sublicence a/nebo prodávat kopie softwaru, a umožnit osobám, kterým je software poskytnut, aby tak činily, za následujících podmínek:
Výše uvedené oznámení o autorských právech a toto oznámení o povolení musí být obsaženo ve všech kopiích nebo podstatných částech softwaru.
SOFTWARE JE POSKYTOVÁN „TAK, JAK JE“, BEZ JAKÝCHKOLI ZÁRUK, VÝSLOVNÝCH NEBO PŘEDPOKLÁDANÝCH, MIMO JINÉ VČETNĚ ZÁRUK PRODEJNOSTI, VHODNOSTI PRO URČITÝ ÚČEL A NEPORUŠOVÁNÍ PRÁV.
AUTOŘI ANI DRŽITELÉ AUTORSKÝCH PRÁV V ŽÁDNÉM PŘÍPADĚ NEODPOVÍDAJÍ ZA JAKÉKOLI NÁROKY, ŠKODY NEBO JINOU ODPOVĚDNOST, AŤ UŽ V RÁMCI SMLUVNÍHO, DELIKTNÍHO NEBO JINÉHO ŘÍZENÍ, VYPLÝVAJÍCÍ Z TOHOTO SOFTWARU NEBO V SOUVISLOSTI S NÍM NEBO S JEHO POUŽÍVÁNÍM ČI JINÝM NAKLÁDÁNÍM S NÍM.
SOFTWARE JE POSKYTOVÁN V PODOBĚ, V JAKÉ JE.