Outil de construction de modules complémentaires natifs pour Node.js
node-gyp
est un outil de ligne de commande multiplateforme écrit en Node.js pour compiler des modules complémentaires natifs pour Node.js, ce qui supprime la douleur de traiter les différences diverses dans les plateformes de construction. C’est le remplacement du programme node-waf
qui est supprimé pour node v0.8
. Si vous avez un addon natif pour node qui a encore un fichier wscript
, alors vous devriez certainement ajouter un fichier binding.gyp
pour supporter les dernières versions de node.
Des versions cibles multiples de node sont supportées (c’est-à-dire 0.8
, 0.9
, 0.10
, …, 1.0
,etc.), indépendamment de la version de node réellement installée sur votre système(node-gyp
télécharge les fichiers de développement nécessaires pour la version cible).
Caractéristiques:
- Facile à utiliser, interface cohérente
- Mêmes commandes pour construire votre module sur chaque plateforme
- Support de plusieurs versions cibles de Node
Installation
Vous pouvez installer avec npm
:
$ npm install -g node-gyp
Vous devrez également installer :
- Sur Unix :
-
python
(v2.7
recommandé,v3.x.x
n’est pas supporté) make
- Une chaîne d’outils de compilation C/C++ appropriée, comme GCC
-
- Sur Windows :
- Python (
v2.7.3
recommandé,v3.x.x
n’est pas supporté) - Windows XP/Vista/7 :
- Microsoft Visual Studio C++ 2010 (la version Express fonctionne bien)
- Pour les constructions 64 bits du nœud et des modules natifs, vous aurez également besoin du SDK 64 bits de Windows 7
- Si l’installation échoue, essayez d’abord de désinstaller tout C++ 2010 x64&x86 Redistribuable que vous avez installé.
- Si vous obtenez des erreurs indiquant que les compilateurs 64 bits ne sont pas installés, vous pouvez également avoir besoin de la mise à jour du compilateur pour le SDK Windows 7.1
- Windows 7/8:
- Microsoft Visual Studio C++ 2012 pour Windows Desktop (la version Express fonctionne bien)
- Python (
Notez que OS X est juste une saveur d’Unix et a donc besoin de python
, make
, et C/C++.Un moyen facile de les obtenir est d’installer XCode d’Apple,et ensuite de l’utiliser pour installer les outils de ligne de commande (sous Préférences -> Téléchargements).
Comment utiliser
Pour compiler votre addon natif, allez d’abord dans son répertoire racine:
$ cd my_node_addon
L’étape suivante consiste à générer les fichiers de construction de projet appropriés pour la currentplatform. Utilisez configure
pour cela:
$ node-gyp configure
Note : L’étape configure
recherche le fichier binding.gyp
dans le répertoire courant pour le traiter. Voir ci-dessous pour les instructions sur la création du fichier binding.gyp
.
Maintenant vous aurez soit un Makefile
(sur les plateformes Unix) ou un fichier vcxproj
(sur Windows) dans le répertoire build/
. Ensuite, invoquez la commande build
:
$ node-gyp build
Maintenant vous avez votre fichier de bindings .node
compilé ! Les bindings compilés finissent dans build/Debug/
ou build/Release/
, selon le mode de construction. À ce stade, vous pouvez exiger le fichier .node
avec Node et exécuter vos tests!
Note : Pour créer une construction Debug du fichier de bindings, passez le commutateur --debug
(ou-d
) lors de l’exécution de la commande configure
ou build
.
Le fichier « binding.gyp »
Avant, lorsque node avait node-waf
, vous deviez écrire un fichier wscript
. Il y a un remplacement pour cela, le fichier binding.gyp
, qui décrit la configurationpour construire votre module dans un format de type JSON. Ce fichier est placé à la racine de votre paquet, à côté du fichier package.json
.
Un fichier gyp
nucléaire approprié pour construire un addon de nœud ressemble à :
{ "targets": } ]}
Quelques ressources supplémentaires pour écrire des fichiers gyp
:
- Exemple d’addon de nœud « Hello World »
- documentation utilisateur de la gyp
- référence du format d’entrée de la gyp
- « binding.gyp » fichiers out in the wild page wiki
Commandes
node-gyp
répond aux commandes suivantes :
Commande | Description |
---|---|
build |
Invoque make /msbuild.exe et construit l’addon natif |
clean |
Supprime tout le répertoire build s’il existe |
configure |
Génère les fichiers de construction du projet pour la plateforme actuelle |
rebuild |
Exécute « clean », « configure » et « build » tous à la suite |
install |
Installe les fichiers d’en-tête de développement de nœuds pour la version donnée |
list |
Liste des versions de fichiers de développement de nœuds actuellement installées |
remove |
Supprime les fichiers d’en-tête de développement de nœuds pour la version donnée |
License
(The MIT License)
Copyright (c) 2012 Nathan Rajlich <[email protected]>
La permission est accordée par la présente, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le « logiciel »), de traiter le logiciel sans restriction, y compris sans limitation les droits d’utilisation, de copie, de modification, de fusion, de publication, de distribution, de sous-licence et/ou de vente de copies du logiciel, et d’autoriser les personnes à qui le logiciel est fourni à le faire, sous réserve des conditions suivantes :
L’avis de copyright ci-dessus et cet avis d’autorisation doivent être inclus dans toutes les copies ou parties substantielles du logiciel.
LE LOGICIEL EST FOURNI » EN L’ÉTAT « , SANS GARANTIE D’AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S’Y LIMITER, LES GARANTIES DE QUALITÉ MARCHANDE, D’ADÉQUATION À UN USAGE PARTICULIER ET D’ABSENCE DE CONTREFAÇON.EN AUCUN CAS, LES AUTEURS OU LES DÉTENTEURS DE DROITS D’AUTEUR NE PEUVENT ÊTRE TENUS RESPONSABLES DE TOUTE RÉCLAMATION, DE TOUT DOMMAGE OU DE TOUTE AUTRE RESPONSABILITÉ, QUE CE SOIT DANS LE CADRE D’UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DE OU EN RELATION AVEC LE LOGICIEL OU L’UTILISATION OU D’AUTRES TRANSACTIONS DU LOGICIEL.