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)

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 buildVerzeichnis, 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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.