Strumento di compilazione addon nativi di Node.js
node-gyp
è uno strumento a riga di comando multipiattaforma scritto in Node.js per compilare moduli addon nativi per Node.js, che toglie il dolore di trattare con le varie differenze nelle piattaforme di compilazione. È il sostituto del programma node-waf
che è stato rimosso per node v0.8
. Se hai un addon nativo per node che ha ancora un file wscript
, allora dovresti assolutamente aggiungere un file binding.gyp
per supportare le ultime versioni di node.
Sono supportate più versioni target di node (cioè 0.8
, 0.9
, 0.10
, …, 1.0
, ecc.), indipendentemente da quale versione di node sia effettivamente installata sul tuo sistema (node-gyp
scarica i file di sviluppo necessari per la versione target).
Caratteristiche:
- Facile da usare, interfaccia coerente
- Stessi comandi per costruire il tuo modulo su ogni piattaforma
- Supporta più versioni target di Node
Installazione
È possibile installare con npm
:
$ npm install -g node-gyp
È inoltre necessario installare:
- Su Unix:
-
python
(v2.7
consigliato,v3.x.x
non è supportato) make
- Un compilatore C/C++ adeguato, come GCC
-
- Su Windows:
- Python (
v2.7.3
consigliato,v3.x.x
non è supportato) - Windows XP/Vista/7:
- Microsoft Visual Studio C++ 2010 (la versione Express funziona bene)
- Per le build a 64 bit del nodo e dei moduli nativi avrai anche bisogno dell’SDK di Windows 7 a 64 bit
- Se l’installazione non riesce, prova prima a disinstallare qualsiasi C++ 2010 x64&x86 Redistributable che hai installato.
- Se ottieni errori che i compilatori a 64 bit non sono installati potresti anche aver bisogno dell’aggiornamento del compilatore per Windows SDK 7.1
- Windows 7/8:
- Microsoft Visual Studio C++ 2012 per Windows Desktop (la versione Express funziona bene)
- Python (
Nota che OS X è solo un flavour di Unix e quindi ha bisogno di python
, make
, e C/C++.Un modo semplice per ottenerli è installare XCode da Apple, e poi usarlo per installare gli strumenti della linea di comando (sotto Preferenze -> Download).
Come usare
Per compilare il tuo addon nativo, prima vai alla sua directory principale:
$ cd my_node_addon
Il prossimo passo è generare i file di build del progetto appropriati per la piattaforma corrente. Usa configure
per questo:
$ node-gyp configure
Nota: il passo configure
cerca il file binding.gyp
nella directory corrente da elaborare. Vedi sotto per le istruzioni sulla creazione del file binding.gyp
.
Ora avrai o un Makefile
(su piattaforme Unix) o un file vcxproj
(su Windows) nella directory build/
. Poi invochi il comando build
:
$ node-gyp build
Ora hai il tuo file di binding .node
compilato! I binding compilati finiscono in build/Debug/
o build/Release/
, a seconda della modalità di compilazione. A questo punto puoi richiedere il file .node
con Node ed eseguire i tuoi test!
Nota: Per creare una build di debug del file di binding, passa lo switch --debug
(o -d
) quando esegui il comando configure
o build
.
Il file “binding.gyp”
In precedenza quando Node aveva node-waf
dovevi scrivere un file wscript
. Al suo posto c’è il file binding.gyp
, che descrive la configurazione per costruire il tuo modulo in un formato simile a JSON. Questo file viene messo nella root del tuo pacchetto, insieme al file package.json
.
Un file gyp
spoglio appropriato per costruire un nodo addon assomiglia a:
{ "targets": } ]}
Alcune risorse aggiuntive per scrivere file gyp
:
- esempio di nodo addon “Hello World”
- documentazione utente gyp
- riferimento al formato di input gyp
- “binding.gyp” file out in the wild wiki page
Comandi
node-gyp
risponde ai seguenti comandi:
Comando | Descrizione |
---|---|
build |
Invoca make /msbuild.exe e costruisce l’addon nativo |
clean |
Rimuove qualsiasi dir build se esiste |
configure |
Genera i file di build del progetto per la piattaforma corrente |
rebuild |
Esegue “clean”, “configure” e “build” tutti in una riga |
install |
Installa i file header di sviluppo del nodo per la versione data |
list |
Lista le versioni dei file di sviluppo del nodo attualmente installate |
remove |
Rimuove i file header di sviluppo del nodo per la versione data |
Licenza
(The MIT License)
Copyright (c) 2012 Nathan Rajlich <[email protected]>
Con la presente è concesso il permesso gratuitamente, a chiunque ottenga una copia di questo software e dei file di documentazione associati (il “Software”), di trattare il Software senza restrizioni, inclusi, senza limitazioni, i diritti di usare, copiare, modificare, unire, pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software, e di permettere alle persone a cui viene fornito il Software di fare altrettanto, soggetto alle seguenti condizioni:
L’avviso di copyright di cui sopra e questo avviso di autorizzazione devono essere inclusi in tutte le copie o porzioni sostanziali del Software.
IL SOFTWARE È FORNITO “COSÌ COM’È”, SENZA GARANZIE DI ALCUN TIPO, ESPRESSE O IMPLICITE, INCLUSE MA NON LIMITATE ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I DETENTORI DEL COPYRIGHT SARANNO RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN’AZIONE DI CONTRATTO, TORTO O ALTRIMENTI, DERIVANTE DA, FUORI O IN CONNESSIONE CON IL SOFTWARE O L’USO O ALTRI RAPPORTI NEL SOFTWARE.