Node.js native addon build tool
node-gyp
egy Node.js nyelven írt cross-platform parancssori eszköz a Node.js natív addon modulok Node.js számára történő fordítására, amely leveszi a kezünkről a build platformok különbözőségeivel való foglalkozás fájdalmát. Ez a node-waf
program helyettesítője, amely a node v0.8
esetében eltávolításra került. Ha van egy natív addonod a node-hoz, amelyhez még mindig van egy wscript
fájl, akkor mindenképpen hozzá kell adnod egy binding.gyp
fájlt, hogy támogassa a node legújabb verzióit.
A node több célverziója támogatott (pl. 0.8
, 0.9
, 0.10
, …, 1.0
,stb.), függetlenül attól, hogy a node melyik verziója van ténylegesen telepítve a rendszereden(node-gyp
letölti a szükséges fejlesztési fájlokat a célverzióhoz).
Jellemzők:
- Egyszerűen használható, egységes felület
- Minden platformon ugyanazokkal a parancsokkal építheti modulját
- Támogatja a Node több célverzióját
Telepítés
A npm
segítségével telepítheti:
$ npm install -g node-gyp
Telepítenie kell még:
- Unixon:
-
python
(v2.7
ajánlott,v3.x.x
nem támogatott) make
- Egy megfelelő C/C++ fordító eszköztárat, mint a GCC
-
- Windowson:
- Python (
v2.7.3
ajánlott,v3.x.x
nem támogatott) - Windows XP/Vista/7:
- Microsoft Visual Studio C++ 2010 (Express verzió jól működik)
- A csomópontok és a natív modulok 64 bites építéséhez a Windows 7 64 bites SDK-ra is szüksége lesz
- Ha a telepítés nem sikerül, először próbálja meg eltávolítani a telepített C++ 2010 x64&x86 Redistributable-t, amit telepített.
- Ha olyan hibákat kap, hogy a 64 bites fordítók nincsenek telepítve, akkor szükség lehet a Windows 7 SDK fordítófrissítésére is.1
- Windows 7/8:
- Microsoft Visual Studio C++ 2012 for Windows Desktop (Express verzió jól működik)
- Python (
Megjegyezzük, hogy az OS X csak a Unix egy ízesített változata, így szüksége van python
, make
és C/C++-ra.Ezek beszerzésének egyszerű módja az XCode telepítése az Apple-től,majd a parancssori eszközök telepítése (a Beállítások -> Letöltések alatt).
How to Use
A natív kiegészítő lefordításához először menj a gyökérkönyvtárába:
$ cd my_node_addon
A következő lépés az aktuálisplatformnak megfelelő projektépítési fájlok generálása. Ehhez használd a configure
-t:
$ node-gyp configure
Megjegyzés: A configure
lépés a binding.gyp
fájlt keresi az aktuális könyvtárban a feldolgozáshoz. A binding.gyp
fájl létrehozására vonatkozó utasításokat lásd alább.
Most már vagy egy Makefile
(Unix platformokon) vagy egy vcxproj
fájl (Windowson) lesz a build/
könyvtárban. Ezután hívd meg a build
parancsot:
$ node-gyp build
Most már megvan a lefordított .node
kötésfájlod! A lefordított kötések a build/Debug/
vagy build/Release/
könyvtárba kerülnek, a build módtól függően. Ezen a ponton megkövetelheted a .node
fájlt a Node-dal, és futtathatod a teszteket!
Megjegyzés: A kötésfájl Debug buildjének létrehozásához add át a --debug
(vagy-d
) kapcsolót, amikor a configure
vagy build
parancsot futtatod.
A “binding.gyp” fájl
Régebben, amikor a node node-waf
volt, egy wscript
fájlt kellett írnod. Ezt helyettesíti a binding.gyp
fájl, amely JSON-szerű formátumban írja le a modulod felépítéséhez szükséges konfigurációt. Ez a fájl a csomagod gyökerébe kerül, a package.json
fájl mellé.
Egy csupasz gyp
fájl, amely alkalmas egy node addon építésére, így néz ki:
{ "targets": } ]}
Néhány további forrás a gyp
fájlok írásához:
- “Hello World” node addon példa
- gyp felhasználói dokumentáció
- gyp input formátum referencia
- “binding.gyp” files out in the wild wiki oldal
Parancsok
node-gyp
a következő parancsokra válaszol:
Command | Description |
---|---|
build |
Invokál make /msbuild.exe és felépíti a natív addont |
clean |
Eltávolítja bármelyik build dir-t, ha létezik |
configure |
Generálja a projekt build fájljait az aktuális platformhoz |
rebuild |
Futtatja “clean”, “configure” és “build” egymás után |
install |
Installálja a csomópontfejlesztési fejlécfájlokat az adott verzióhoz |
list |
Listázza az aktuálisan telepített csomópontfejlesztési fájlverziókat |
remove |
Eltávolítja az adott verzióhoz tartozó node fejlesztési fejlécfájlokat |
Licenc
(The MIT License)
Copyright (c) 2012 Nathan Rajlich <[email protected]>
Az engedélyt ezennel megadom, a szoftver és a kapcsolódó dokumentációs fájlok (“Szoftver”) másolatát megszerző bármely személy számára, hogy a Szoftverrel korlátozás nélkül kereskedjen, beleértve korlátozás nélkül a Szoftver használatának, másolásának, módosításának, egyesítésének, közzétételének, terjesztésének, allicencelésének és/vagy másolatainak értékesítésének jogát, valamint a Szoftver címzettjeinek engedélyezését, az alábbi feltételek mellett:
A fenti szerzői jogi közleményt és ezt az engedélyezési közleményt a Szoftver minden példányának vagy jelentős részének tartalmaznia kell.
A SZOFTVERT ÚGY NYÚJTJUK, AHOGY VAN, BÁRMIFÉLE KIFEJEZETT VAGY HALLGATÓLAGOS GARANCIA NÉLKÜL, BELEÉRTVE, DE NEM KIZÁRÓLAGOSAN A SZAVATOSSÁGOT A FORGALOMKÉPESSÉGRE, A MEGHATÁROZOTT CÉLRA VALÓ ALKALMASSÁGRA ÉS A JOGSÉRTÉSMENTESSÉGRE VONATKOZÓAN.A SZERZŐK VAGY A SZERZŐI JOGOK JOGOSULTJAI SEMMILYEN ESETBEN NEM VÁLLALNAK FELELŐSSÉGET SEMMILYEN KÖVETELÉSÉRT, KÁRÉRT VAGY EGYÉB FELELŐSSÉGÉRT, AKÁR SZERZŐDÉSES, AKÁR KÁRTÉRÍTÉSI VAGY EGYÉB KERESET ALAPJÁN, AMELY A SZOFTVERBŐL, A SZOFTVER HASZNÁLATÁBÓL VAGY A SZOFTVERREL KAPCSOLATOS EGYÉB ÜGYLETEKBŐL ERED, VAGY AZZAL ÖSSZEFÜGGÉSBEN ÁLL FENN.