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-wafprogram 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.7ajánlott,v3.x.xnem támogatott) make- Egy megfelelő C/C++ fordító eszköztárat, mint a GCC
-
- Windowson:
- Python (
v2.7.3ajánlott,v3.x.xnem 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.