2015-05-14 26 views
9

Stavo cercando di installare node_mouse e quando ho cercato nella cartella dei miei moduli di nodo e invece di una normale estensione di file .js, ho trovato un'estensione di file .node. Come posso eseguire node_mouse? Ho esaminato questo aspetto e penso che potrebbe essere un addon scritto in C++, ma non sono esattamente sicuro (Node addons)Come utilizzare un file .node?

+4

Non è necessario pensare alle estensioni, basta "richiedere" il modulo come qualsiasi altro modulo. Stai ricevendo qualche errore? – loganfsmyth

+1

Lo ero, ma non mi sono reso conto che non avevo un compilatore C++ adatto, lavorando su quello proprio ora. – idude

+1

Sto ottenendo qualche errore con l'estensione del file .node, puoi darmi un indizio su come hai funzionato? –

risposta

1

Sì, il normale utilizzo di "richiesta" è appropriato per i file .node. Il punto di questi file è creare binari portatili (usando node-gyp, da C++) a cui è possibile fare riferimento come richiesto dal nodo normale. Vedere la sezione hello.js del node addon docs:

const addon = require('./build/Release/addon'); 

console.log(addon.hello()); 

Dopo aver guardato in questo lib NPM, viene caricato dal nodo correttamente sul mio Windows, Mac e Linux VM con diverse versioni dei nodi differenti, ma il binario genera matrice di errori. Su Windows, ha una versione specifica di Windows come bersaglio build (probabilmente NT, poiché Windows 10 genera un errore):

Error: %1 is not a valid Win32 application. 

Su OS X, questo è dyld riesce a aprire una libreria condivisa a cui fa riferimento il file binario . (Vedere man dlopen):

Error:dlopen(/.../node_mouse/node_mouse.node, 1): no suitable image found. 

Su Linux, otteniamo un errore di intestazione ELF, che ci dice che il binario non può essere eseguito su questo sistema operativo.

Error: /app/available_modules/1484064894000/node_mouse/node_mouse.node: invalid ELF header 

La author sembra fare un sacco di lavoro di Windows NT, quindi se si ha realmente bisogno di questo lavoro, trovare una nuova copia di Windows NT con tutte le dev add ons.

Infine, si consideri il rischio per la sicurezza di eseguire binari closed source di terze parti nella propria base di codice (in particolare quelli che controllano il movimento del mouse).