Qu'est-ce que node-gyp

123

Quelqu'un peut-il m'expliquer ce que c'est node-gypet pourquoi il utilise mes fichiers système pour créer des packages Node.JS.

  1. Si Ii construit un projet de nœud et qu'il est utilisé en node-gypinterne.
  2. Ensuite, je viens de tarer ce projet et je suis passé à un système différent
  3. Je le décompose là-bas et essaie de l'utiliser

Cette approche fonctionnera-t-elle?

autodidacte91
la source
17
Il est décrit sur sa page github: github.com/nodejs/node-gyp . Fondamentalement, node-gypc'est comme make. C'est un outil utilisé pour contrôler le processus de compilation des projets C ++. Seulement, il est conçu spécifiquement pour les addons node.js (modules écrits en C ++). Le passage à un autre système peut donc fonctionner s'il utilise le même processeur. Le passage à un système d'exploitation ou à un processeur différent (par exemple de x86 à ARM) ne fonctionnera pas. Pour Linux, passer à une distribution différente d'une version différente de la même distribution peut ou non fonctionner. Je ne suis pas sûr à 100% si le passage à une version différente de node.js fonctionnerait
slebetman
2
Quand je l'exécute, yarn why node-gypil revient avec: parce que node-sass, donc je suis sûr qu'il a d'autres utilisations, mais cela peut être dans votre projet si vous ou quelqu'un que vous aimez a été diagnostiqué sass.
Kzqai
@slebetman passer à une version de nœud différente ne fonctionnera pas, je ne sais pas si c'est vrai à 100%, mais d'après mon expérience, vous devez supprimer l'ancien node-gyp après la mise à niveau de la version de nodejs et lors de l'installation des modules, il est reconstruit automatiquement en arrière-plan.
Lukas Liesis le

Réponses:

134

node-gypest un outil qui compile les Addons Node.js. Les Addons Node.js sont des modules Node.js natifs, écrits en C ou C ++, qui doivent donc être compilés sur votre machine. Une fois compilés avec des outils tels que node-gyp, leurs fonctionnalités sont accessibles via require(), comme n'importe quel autre module Node.js.

Si vous faites ce que vous avez suggéré, le module ne fonctionnera pas, vous devrez le compiler / le construire avec node-gyp sur le système sur lequel vous avez déplacé le programme.

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

Modules complémentaires Node.js: https://nodejs.org/api/addons.html

vuza
la source
28
je dois admettre, je vois un module no npmjs qui utilise node-gyp Je cours habituellement à 10 miles de là
PirateApp
38
Il est passionnant que vous puissiez aujourd'hui cloner une application Web (ce qui semble) relativement simple écrite en NodeJS, et tout d'un coup vous devez télécharger un logiciel pour compiler du coden natif écrit en C et C ++. La meilleure partie est lorsque vous rencontrez des problèmes et que vous savez exactement ce que vous faites de vos compétences en conception Web pour résoudre ce problème.
Jim Aho
3
@ Mr-Programs Il est connecté via une liaison, qui doit également être écrite par vous
vuza
2
@JimAho Idéalement, et souvent, le code est juste en boîte noire. L'avantage est que vous pouvez utiliser des outils rapides et bien pris en charge pour faire des choses spécifiques comme parse xml, sans avoir à attendre un port js qui pourrait être plus lent ou plus cassé. Cela dit, je préfère les js natifs dans la mesure du possible, mais je ne suis pas certain que cette position soit bien fondée. En outre, C / C ++ devrait être très portable pour tous les cas qui ne dépendent pas intentionnellement du système d'exploitation (comme les notifications). De plus, les paquets sujets aux bogues ne sont pas largement adoptés, quelle que soit la source de ces bogues.
Adam Tolley
3
Pour info, je crois que "gyp" est l'abréviation de "générer vos projets"
Tom