2015-05-14 15 views
9

Próbowałem zainstalować node_mouse, a gdy zajrzał do folderu modułów węzłów i zamiast normalnego rozszerzenia pliku .js, znalazłem rozszerzenie pliku .node. Jak mogę uruchomić node_mouse? Sprawdziłem to i myślę, że to może być dodatek napisany w C++, ale nie jestem do końca pewien (Node addons)Jak korzystać z pliku .node?

+4

Nie powinieneś myśleć o rozszerzeniach, po prostu "wymagaj" modułu jak każdego innego modułu. Czy dostaję jakiś błąd? – loganfsmyth

+1

Byłem, ale nie zdałem sobie sprawy, że nie miałem odpowiedniego kompilatora C++, pracując nad tym teraz. – idude

+1

Otrzymuję również błąd z rozszerzeniem pliku .node, czy możesz dać mi wskazówkę, jak to działa? –

Odpowiedz

1

Tak, normalne użycie "require" jest odpowiednie dla plików .node. Celem tych plików jest utworzenie przenośnych plików binarnych (za pomocą węzła-gyp, z C++), do których można się odwoływać, tak jak wymaga tego normalny węzeł. Zobacz sekcję hello.js z node addon docs:

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

console.log(addon.hello()); 

Po pobycie w tym NPM lib, to jest ładowany przez węzeł prawidłowo w systemie Windows, Mac i Linux VM z kilku różnych wersjach węzłów, ale binarny Zgłasza tablica błędów. Na oknach, ma konkretną wersję Windows jako cel budowlanej (prawdopodobnie NT, ponieważ system Windows 10 generuje błąd):

Error: %1 is not a valid Win32 application. 

na OS X, to dyld braku otwarcia biblioteki współdzielonej odwołuje binarnego . (Patrz człowiek dlopen):

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

na Linuksie, otrzymujemy ELF błąd nagłówka, który mówi nam, że binarne nie mogą być uruchamiane na tym systemie operacyjnym.

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

author wydaje się zrobić dużo pracy, Windows NT, więc jeśli naprawdę potrzebujesz tej pracy, znaleźć świeżą kopię systemu Windows NT z wszystkimi dev dodać dodatki.

Wreszcie należy wziąć pod uwagę ryzyko bezpieczeństwa uruchamiania plików binarnych o zamkniętym kodzie źródłowym innych firm w bazie kodu (zwłaszcza tych, które sterują ruchem myszy).

Powiązane problemy