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)

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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.