Node.js native addon build tool
node-gyp
ist ein plattformübergreifendes Kommandozeilen-Tool, das in Node.js geschrieben wurde, um native Addon-Module für Node.js zu kompilieren, was den Umgang mit den verschiedenen Unterschieden in den Build-Plattformen erleichtert. Es ist der Ersatz für das node-waf
-Programm, das für Node v0.8
entfernt wurde. Wenn du ein natives Addon für Node hast, das noch eine wscript
-Datei hat, dann solltest du auf jeden Fall eine binding.gyp
-Datei hinzufügen, um die neuesten Versionen von Node zu unterstützen.
Mehrere Zielversionen von Node werden unterstützt (d.h. 0.8
, 0.9
, 0.10
, …, 1.0
,etc.), unabhängig davon, welche Version von Node tatsächlich auf deinem System installiert ist (node-gyp
lädt die notwendigen Entwicklungsdateien für die Zielversion herunter).
Merkmale:
- Einfache Bedienung, konsistente Schnittstelle
- Gleiche Befehle, um Ihr Modul auf jeder Plattform zu bauen
- Unterstützt mehrere Zielversionen von Node
Installation
Sie können mit npm
installieren:
$ npm install -g node-gyp
Sie müssen auch installieren:
- Auf Unix:
-
python
(v2.7
empfohlen,v3.x.x
wird nicht unterstützt) make
- Eine geeignete C/C++ Compiler Toolchain, wie GCC
-
- Auf Windows:
- Python (
v2.7.3
empfohlen,v3.x.x
wird nicht unterstützt) - Windows XP/Vista/7:
- Microsoft Visual Studio C++ 2010 (Express-Version funktioniert gut)
- Für 64-Bit-Builds von Node und nativen Modulen benötigen Sie auch das Windows 7 64-Bit-SDK
- Wenn die Installation fehlschlägt, versuchen Sie zunächst, alle C++ 2010 x64&x86 Redistributable zu deinstallieren, die Sie installiert haben.
- Wenn Sie die Fehlermeldung erhalten, dass die 64-Bit-Compiler nicht installiert sind, benötigen Sie möglicherweise auch das Compiler-Update für das Windows SDK 7.1
- Windows 7/8:
- Microsoft Visual Studio C++ 2012 für Windows Desktop (Express-Version funktioniert gut)
- Python (
Beachten Sie, dass OS X nur eine Variante von Unix ist und daher python
, make
und C/C++ benötigt.Ein einfacher Weg, diese zu erhalten, ist die Installation von XCode von Apple, und dann die Installation der Kommandozeilen-Tools (unter Preferences -> Downloads).
How to Use
Um Ihr natives Addon zu kompilieren, gehen Sie zuerst in sein Stammverzeichnis:
$ cd my_node_addon
Der nächste Schritt ist die Generierung der entsprechenden Projekt-Build-Dateien für die aktuelle Plattform. Verwenden Sie dazu configure
:
$ node-gyp configure
Hinweis: Der Schritt configure
sucht die Datei binding.gyp
im aktuellen Verzeichnis, um sie zu verarbeiten. Anweisungen zum Erstellen der Datei binding.gyp
finden Sie weiter unten.
Jetzt haben Sie entweder eine Makefile
(auf Unix-Plattformen) oder eine vcxproj
-Datei (unter Windows) im Verzeichnis build/
. Als nächstes rufen Sie den build
Befehl auf:
$ node-gyp build
Nun haben Sie Ihre kompilierte .node
Bindungsdatei! Die kompilierten Bindungen enden in build/Debug/
oder build/Release/
, je nach Build-Modus. An diesem Punkt können Sie die .node
Datei mit Node benötigen und Ihre Tests ausführen!
Hinweis: Um einen Debug-Build der Bindungsdatei zu erstellen, übergeben Sie den --debug
(oder-d
) Schalter, wenn Sie entweder den configure
oder build
Befehl ausführen.
Die „binding.gyp“ Datei
Vormals, als Node node-waf
hatte, mussten Sie eine wscript
Datei schreiben. Diese wird durch die Datei binding.gyp
ersetzt, die die Konfiguration zur Erstellung des Moduls in einem JSON-ähnlichen Format beschreibt. Diese Datei wird im Stammverzeichnis des Pakets neben der package.json
-Datei abgelegt.
Eine einfache gyp
Datei, die für die Erstellung eines Node-Addons geeignet ist, sieht wie folgt aus:
{ "targets": } ]}
Ein paar zusätzliche Ressourcen zum Schreiben von gyp
Dateien:
- „Hello World“ Node-Addon Beispiel
- gyp Benutzerdokumentation
- gyp Eingabeformat Referenz
- „binding.gyp“ Dateien in freier Wildbahn Wiki-Seite
Befehle
node-gyp
antwortet auf die folgenden Befehle:
Befehl | Beschreibung |
---|---|
build |
Ruft make /msbuild.exe auf und baut das native Addon |
clean |
Entfernt das build Verzeichnis, falls es existiert |
configure |
Erzeugt Projekt-Build-Dateien für die aktuelle Plattform |
rebuild |
Läuft „clean“, „configure“ und „build“ hintereinander |
install |
Installiert Node-Entwicklungsheader-Dateien für die angegebene Version |
list |
Listet die aktuell installierten Node-Entwicklungsdateiversionen auf |
remove |
Entfernt die Knotenentwicklungs-Headerdateien für die angegebene Version |
Lizenz
(The MIT License)
Copyright (c) 2012 Nathan Rajlich <[email protected]>
Die Erlaubnis wird hiermit erteilt, kostenlos jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die „Software“) erhält, die Erlaubnis, mit der Software uneingeschränkt zu handeln, einschließlich der Rechte, Kopien der Software zu verwenden, zu kopieren, zu modifizieren, zusammenzuführen, zu veröffentlichen, zu vertreiben, unterzulizenzieren und/oder zu verkaufen, sowie Personen, denen die Software zur Verfügung gestellt wird, dies zu gestatten, vorbehaltlich der folgenden Bedingungen:
Der obige Copyright-Hinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.
DIE SOFTWARE WIRD IM IST-ZUSTAND UND OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG ZUR VERFÜGUNG GESTELLT, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG VON RECHTEN DRITTER.
IN KEINEM FALL HAFTEN DIE AUTOREN ODER DIE INHABER DER URHEBERRECHTE FÜR ANSPRÜCHE, SCHÄDEN ODER SONSTIGE HAFTUNGEN, SEI ES AUFGRUND VON VERTRÄGEN, UNERLAUBTEN HANDLUNGEN ODER ANDERWEITIG, DIE SICH AUS DER SOFTWARE ODER DER NUTZUNG ODER DEM SONSTIGEN UMGANG MIT DER SOFTWARE ERGEBEN.