Que es node-gyp

123

¿Alguien puede explicarme qué es node-gypy por qué usa los archivos de mi sistema para construir paquetes Node.JS?

  1. Si construyo un proyecto de nodo y lo usé node-gypinternamente.
  2. Luego, simplemente alquilé ese proyecto y me mudé a un sistema diferente
  3. Lo desabrocho ahí y trato de usarlo

¿Funcionará este enfoque?

autodidacta91
fuente
17
Se describe en su página de github : github.com/nodejs/node-gyp . Básicamente, node-gypes como make. Es una herramienta que se utiliza para controlar el proceso de compilación de proyectos C ++. Solo que está diseñado específicamente para complementos de node.js (módulos escritos en C ++). Por lo tanto, cambiar a un sistema diferente puede funcionar si usa la misma CPU. Moverse a un sistema operativo o CPU diferente (por ejemplo, de x86 a ARM) no funcionará. Para Linux, cambiar a una distribución diferente de una versión diferente de la misma distribución puede funcionar o no. No estoy 100% seguro de si pasar a una versión diferente de node.js funcionaría
slebetman
2
Cuando lo ejecuto yarn why node-gyp, vuelve con: porque node-sass, así que estoy seguro de que tiene otros usos, pero puede ser en tu proyecto si tú o alguien a quien amas han sido diagnosticados sass.
Kzqai
@slebetman moverse a una versión de nodo diferente no funcionará, no estoy seguro de si eso es 100% cierto, sin embargo, según mi experiencia, debe eliminar el antiguo node-gyp después de actualizar la versión de nodejs y durante la instalación de los módulos, se vuelve a compilar automáticamente en segundo plano.
Lukas Liesis

Respuestas:

134

node-gypes una herramienta que compila complementos de Node.js. Los complementos de Node.js son módulos nativos de Node.js, escritos en C o C ++, que, por lo tanto, deben compilarse en su máquina. Una vez compilados con herramientas como node-gyp, se puede acceder a su funcionalidad a través de require(), al igual que cualquier otro módulo Node.js.

Si hace lo que sugirió que el módulo no funcionará, necesitará compilarlo / construirlo con node-gyp en el sistema al que movió el programa.

node-gyp: https://github.com/nodejs/node-gyp

Complementos de Node.js: https://nodejs.org/api/addons.html

vuza
fuente
28
Tengo que admitir que veo un módulo sin npmjs que usa node-gyp Normalmente corro a 10 millas de distancia
PirateApp
38
Es emocionante que hoy en día pueda clonar una aplicación web (lo que parece) relativamente simple escrita en NodeJS, y de repente debe descargar software para compilar código nativo escrito en C y C ++. La mejor parte es cuando tiene problemas y sabe exactamente qué hacer con sus habilidades de diseño web para resolverlos.
Jim Aho
3
@ Mr-Programs Está conectado a través de un enlace, que también debe ser escrito por usted
vuza
2
@JimAho Idealmente, y con frecuencia, el código está en una caja negra. Lo bueno es que puede usar herramientas rápidas y bien compatibles para hacer cosas específicas como analizar xml, y no tener que esperar a un puerto js que podría ser más lento o más roto. Dicho esto, prefiero los js nativos siempre que sea posible, pero no estoy seguro de que la posición esté bien fundada. Además, C / C ++ debería ser muy portátil para cualquier caso que no dependa deliberadamente del sistema operativo (como las notificaciones). Además, los paquetes propensos a errores no tienen una amplia adopción, independientemente de la fuente de dichos errores.
Adam Tolley
3
FYI, creo que "gyp" es la abreviatura de "genera tus proyectos"
Tom