Node.js native addon build tool
node-gyp
este o unealtă de linie de comandă cross-platform scrisă în Node.js pentru compilarea modulelor addon native pentru Node.js, care elimină durerea de a face față diverselor diferențe dintre platformele de compilare. Este înlocuitorul programului node-waf
, care este eliminat pentru node v0.8
. Dacă aveți un addon nativ pentru node care are încă un fișier wscript
, atunci ar trebui neapărat să adăugați un fișier binding.gyp
pentru a suporta cele mai recente versiuni de node.
Sunt suportate mai multe versiuni țintă de node (adică 0.8
, 0.9
, 0.10
, …, 1.0
,etc.), indiferent de versiunea de node instalată efectiv pe sistemul dumneavoastră (node-gyp
descarcă fișierele de dezvoltare necesare pentru versiunea țintă).
Caracteristici:
- Interfață ușor de utilizat, coerentă
- Aceleași comenzi pentru a vă construi modulul pe fiecare platformă
- Suportă mai multe versiuni țintă de Node
Instalare
Puteți instala cu npm
:
$ npm install -g node-gyp
De asemenea, va trebui să instalați:
- Pe Unix:
-
python
(v2.7
recomandat,v3.x.x
nu este suportat) make
- Un lanț de instrumente de compilare C/C++ adecvat, cum ar fi GCC
-
- Pe Windows:
- Python (
v2.7.3
recomandat,v3.x.x
nu este suportat) - Windows XP/Vista/7:
- Microsoft Visual Studio C++ 2010 (versiunea Express funcționează bine)
- Pentru construcțiile pe 64 de biți ale nodului și modulelor native veți avea nevoie, de asemenea, de SDK-ul Windows 7 pe 64 de biți
- Dacă instalarea nu reușește, încercați să dezinstalați mai întâi orice C++ 2010 x64&x86 Redistributable pe care l-ați instalat.
- Dacă primiți erori care indică faptul că compilatoarele pe 64 de biți nu sunt instalate, este posibil să aveți nevoie și de actualizarea compilatorului pentru Windows SDK 7.1
- Windows 7/8:
- Microsoft Visual Studio C++ 2012 pentru Windows Desktop (versiunea Express funcționează bine)
- Python (
Rețineți că OS X este doar o aromă de Unix și deci are nevoie de python
, make
și C/C++.O modalitate ușoară de a le obține este să instalați XCode de la Apple,și apoi să-l folosiți pentru a instala instrumentele de linie de comandă (în Preferențe -> Descărcări).
Cum se utilizează
Pentru a vă compila addon-ul nativ, mergeți mai întâi în directorul rădăcină al acestuia:
$ cd my_node_addon
Postul următor este de a genera fișierele de construcție a proiectului adecvate pentru platforma curentă. Folosiți configure
pentru asta:
$ node-gyp configure
Nota: Pasul configure
caută fișierul binding.gyp
în directorul curent pentru a-l procesa. Vedeți mai jos instrucțiunile de creare a fișierului binding.gyp
.
Acum veți avea fie un fișier Makefile
(pe platformele Unix), fie un fișier vcxproj
(pe Windows) în directorul build/
. În continuare, invocați comanda build
:
$ node-gyp build
Acum aveți fișierul de bindings .node
compilat! Legăturile compilate se termină în build/Debug/
sau build/Release/
, în funcție de modul de compilare. În acest moment, puteți cere fișierul .node
cu Node și să vă executați testele!
Nota: Pentru a crea o compilare Debug a fișierului de legături, treceți comutatorul --debug
(sau-d
) atunci când executați comanda configure
sau build
.
Fisierul „binding.gyp”
Anterior, când Node avea node-waf
, trebuia să scrieți un fișier wscript
. Înlocuitorul acestuia este fișierul binding.gyp
, care descrie configurațiapentru a vă construi modulul într-un format de tip JSON. Acest fișier este plasat în rădăcina pachetului dvs., alături de fișierul package.json
.
Un fișier gyp
gol-goluț adecvat pentru construirea unui addon de nod arată astfel:
{ "targets": } ]}
Câteva resurse suplimentare pentru scrierea fișierelor gyp
:
- Exemplu de addon de nod „Hello World”
- Documentație pentru utilizatorgyp
- Referință pentru formatul de intraregyp
- „binding.gyp” files out in the wild wiki page
Commands
node-gyp
răspunde la următoarele comenzi:
Comandă | Descriere |
---|---|
build |
Invoacă make /msbuild.exe și construiește addon-ul nativ |
clean |
Îndepărtează orice dir build dacă există |
configure |
Generează fișierele de construire a proiectului pentru platforma curentă |
rebuild |
Se execută „curat”, „configure” și „build” toate la rând |
install |
Instalează fișierele antet de dezvoltare a nodului pentru versiunea dată |
list |
Înumeră versiunile fișierelor de dezvoltare a nodului instalate în prezent |
remove |
Îndepărtează fișierele antet de dezvoltare a nodului pentru versiunea dată |
Licență
(The MIT License)
Copyright (c) 2012 Nathan Rajlich <[email protected]>
Permisiunea este acordată prin prezenta, gratuită, oricărei persoane care obține o copie a acestui software și a fișierelor de documentație asociate (denumit în continuare „Software”), de a tranzacționa Software-ul fără restricții, inclusiv, fără a se limita la drepturile de a utiliza, copia, modifica, îmbina, publica, distribui, sublicenția și/sau vinde copii ale Software-ului, precum și de a permite persoanelor cărora le este furnizat Software-ul să facă acest lucru, sub rezerva următoarelor condiții:
Anunțul privind drepturile de autor de mai sus și acest anunț de permisiune vor fi incluse în toate copiile sau părțile substanțiale ale software-ului.
SOFTWARE-UL ESTE FURNIZAT „AȘA CUM ESTE”, FĂRĂ NICI UN FEL DE GARANȚIE DE ORICE FEL, EXPRESĂ SAU IMPLICITĂ, INCLUSIV, DAR FĂRĂ A SE LIMITA LA GARANȚIILE DE VANDABILITATE, DE ADECVARE LA UN ANUMIT SCOP ȘI DE NERESPECTARE A DREPTURILOR DE AUTOR. ÎN NICI UN CAZ AUTORII SAU DEȚINĂTORII DREPTURILOR DE AUTOR NU VOR FI RĂSPUNZĂTORI PENTRU ORICE RECLAMAȚIE, DAUNE SAU ALTE RĂSPUNDERI, FIE ÎNTR-O ACȚIUNE CONTRACTUALĂ, DELICTUALĂ SAU DE ALTĂ NATURĂ, CARE REZULTĂ DIN, DIN SAU ÎN LEGĂTURĂ CU SOFTWARE-UL SAU CU UTILIZAREA SAU ALTE TRANZACȚII CU SOFTWARE-UL.
.