Herramienta de compilación de complementos nativos de Node.js
node-gyp
es una herramienta de línea de comandos multiplataforma escrita en Node.js para la compilación de módulos de complementos nativos para Node.js, que elimina la molestia de tener que lidiar con las diferentes plataformas de compilación. Es el reemplazo del programa node-waf
que se elimina para node v0.8
. Si usted tiene un complemento nativo para node que todavía tiene un archivo wscript
, entonces usted debe agregar definitivamente un archivo binding.gyp
para soportar las últimas versiones de node.
Múltiples versiones de destino de node son compatibles (es decir, 0.8
, 0.9
, 0.10
, …, 1.0
, etc.), independientemente de la versión de node está realmente instalado en su sistema (node-gyp
descarga los archivos de desarrollo necesarios para la versión de destino).
Características:
- Fácil de usar, interfaz consistente
- Los mismos comandos para construir su módulo en cada plataforma
- Soporta múltiples versiones de destino de Node
Instalación
Se puede instalar con npm
:
$ npm install -g node-gyp
También necesitarás instalar:
- En Unix:
-
python
(v2.7
recomendado,v3.x.x
no es compatible) make
- Una cadena de herramientas de compilación C/C++ adecuada, como GCC
-
- En Windows:
- Python (
v2.7.3
recomendado,v3.x.x
no es compatible) - En Windows XP/Vista/7:
- Microsoft Visual Studio C++ 2010 (la versión Express funciona bien)
- Para las construcciones de 64 bits de nodos y módulos nativos también necesitarás el SDK de 64 bits de Windows 7
- Si la instalación falla, intenta desinstalar primero cualquier C++ 2010 x64&x86 Redistributable que tengas instalado.
- Si obtiene errores de que los compiladores de 64 bits no están instalados, es posible que también necesite la actualización del compilador para el SDK 7 de Windows.1
- Windows 7/8:
- Microsoft Visual Studio C++ 2012 para Windows Desktop (la versión Express funciona bien)
- Python (
Tenga en cuenta que OS X es sólo un sabor de Unix y por lo tanto necesita python
, make
, y C/C++.Una manera fácil de obtener estos es instalar XCode de Apple, y luego utilizarlo para instalar las herramientas de línea de comandos (en Preferencias -> Descargas).
Cómo usar
Para compilar su addon nativo, primero vaya a su directorio raíz:
$ cd my_node_addon
El siguiente paso es generar los archivos de construcción del proyecto apropiado para la plataforma actual. Utilice configure
para ello:
$ node-gyp configure
Nota: El paso configure
busca el archivo binding.gyp
en el directorio actual para procesarlo. Vea a continuación las instrucciones para crear el archivo binding.gyp
.
Ahora tendrá un archivo Makefile
(en plataformas Unix) o un archivo vcxproj
(en Windows) en el directorio build/
. A continuación invoca el comando build
:
$ node-gyp build
¡Ahora tienes tu archivo de bindings .node
compilado! Los bindings compilados terminan en build/Debug/
o build/Release/
, dependiendo del modo de compilación. En este punto puedes requerir el archivo .node
con Node y ejecutar tus pruebas.
Nota: Para crear una compilación Debug del archivo de bindings, pasa el switch --debug
(o-d
) cuando ejecutes el comando configure
o build
.
El archivo «binding.gyp»
Antes cuando node tenía node-waf
tenías que escribir un archivo wscript
. Su lugar es el archivo binding.gyp
, que describe la configuración para construir su módulo en un formato similar a JSON. Este archivo se coloca en la raíz de su paquete, junto con el archivo package.json
.
Un archivo gyp
básico apropiado para construir un complemento de nodo tiene el siguiente aspecto:
{ "targets": } ]}
Algunos recursos adicionales para escribir archivos gyp
:
- Ejemplo de complemento de nodo «Hello World»
- documentación de usuario de gyp
- referencia del formato de entrada de gyp
- «binding.gyp» archivos fuera en la página wiki salvaje
Comandos
node-gyp
responde a los siguientes comandos:
Comando | Descripción |
---|---|
build |
Invoca make /msbuild.exe y construye el addon nativo |
clean |
Elimina cualquier el build dir si existe |
configure |
Genera archivos de construcción del proyecto para la plataforma actual |
rebuild |
Ejecuta «clean», «configure» y «build» todos seguidos |
install |
Instala los archivos de cabecera de desarrollo del nodo para la versión dada |
list |
Lista las versiones de los archivos de desarrollo del nodo actualmente instalados |
remove |
Elimina los archivos de cabecera de desarrollo de nodos para la versión dada |
Licencia
(The MIT License)
Copyright (c) 2012 Nathan Rajlich <[email protected]>
Se concede permiso, de forma gratuita, a cualquier persona que obtenga una copia de este software y de los archivos de documentación asociados (el «Software»), para comerciar con el Software sin restricciones, incluyendo, sin limitación, los derechos de uso, copia, modificación, fusión, publicación, distribución, sublicencia y/o venta de copias del Software, y para permitir a las personas a las que se proporciona el Software que lo hagan, con sujeción a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE SUMINISTRA «TAL CUAL», SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO SIN LIMITARSE A LAS GARANTÍAS DE COMERCIABILIDAD, ADECUACIÓN PARA UN FIN DETERMINADO Y NO INFRACCIÓN.EN NINGÚN CASO LOS AUTORES O LOS TITULARES DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, EXTRACONTRACTUAL O DE OTRO TIPO, QUE SURJA DE, O ESTÉ RELACIONADA CON EL SOFTWARE O EL USO U OTRAS OPERACIONES CON EL SOFTWARE.