Cos'è node-gyp


123

Qualcuno può spiegarmi cos'è node-gype perché utilizza i miei file di sistema per creare pacchetti Node.JS.

  1. Se Ii costruisci un progetto di nodo e viene utilizzato node-gypinternamente.
  2. Quindi ho solo tarato quel progetto e sono passato a un sistema diverso
  3. Lo scompongo lì e provo a usarlo

Questo approccio funzionerà?


17
È descritto nella sua pagina github: github.com/nodejs/node-gyp . Fondamentalmente, node-gypè come make. È uno strumento utilizzato per controllare il processo di compilazione dei progetti C ++. Solo, è progettato specificamente per i componenti aggiuntivi di node.js (moduli scritti in C ++). Quindi passare a un sistema diverso può funzionare se utilizza la stessa CPU. Il passaggio a un sistema operativo o CPU diverso (ad esempio da x86 a ARM) non funzionerà. Per Linux, il passaggio a una distribuzione diversa di una versione diversa della stessa distribuzione può o non può funzionare. Non sono sicuro al 100% se il passaggio a una versione diversa di node.js funzionerebbe
slebetman,

2
Quando corro yarn why node-gyptorna con: perché node-sass, quindi sono sicuro che abbia altri usi, ma potrebbe essere nel tuo progetto se a te o qualcuno che ami è stato diagnosticato sass.
Kzqai,

@slebetman il passaggio a una versione di nodo diversa non funzionerà, non sono sicuro che sia vero al 100%, ma dalla mia esperienza, è necessario rimuovere il vecchio node-gyp dopo aver aggiornato la versione di nodejs e durante l'installazione dei moduli viene ricostruito automaticamente in background.
Lukas Liesis

Risposte:


134

node-gypè uno strumento che compila i componenti aggiuntivi di Node.js. I componenti aggiuntivi di Node.js sono moduli nativi di Node.js, scritti in C o C ++, che quindi devono essere compilati sulla tua macchina. Dopo che sono stati compilati con strumenti come node-gyp, è possibile accedere alle loro funzionalità tramite require(), proprio come qualsiasi altro modulo Node.js.

Se fai quello che hai suggerito, il modulo non funzionerà, dovrai compilarlo / costruirlo con node-gyp sul sistema in cui hai spostato il programma.

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

Componenti aggiuntivi di Node.js: https://nodejs.org/api/addons.html


28
devo ammettere, vedo un modulo senza npmjs che usa node-gyp Di solito corro a 10 miglia di distanza
PirateApp

38
È entusiasmante che al giorno d'oggi tu possa clonare un'app Web (quella che sembra) relativamente semplice scritta in NodeJS, e all'improvviso devi scaricare software per compilare il codice nativo scritto in C e C ++. La parte migliore è quando incontri problemi e sai esattamente cosa fare con le tue capacità di web design per risolverli.
Jim Aho

3
@ Mr-Programs È collegato tramite un binding, che deve anche essere scritto da te
vuza

2
@JimAho Idealmente, e spesso, il codice è solo in scatola nera. Il bello è che puoi usare strumenti veloci e ben supportati per fare cose specifiche come analizzare xml, e non devi aspettare una porta js che potrebbe essere più lenta o più danneggiata. Detto questo, preferisco js nativi quando possibile, ma non sono sicuro che la posizione sia ben fondata. Inoltre, C / C ++ dovrebbe essere molto portabile per tutti i casi che non dipendono intenzionalmente dal sistema operativo (come le notifiche). Inoltre, i pacchetti inclini ai bug non vedono un'ampia adozione indipendentemente dalla fonte di detti bug.
Adam Tolley

3
Cordiali saluti, credo che "gyp" sia l'abbreviazione di "genera i tuoi progetti"
Tom
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.