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-wafche è 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)

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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.