Intéressant, je connaissais pas ce genre de fail, même si ça semble logique.
Le principe c'est lors d'une comparaison de chaîne, profiter d'un overflow (je suppose).
Pour éviter le soucis on fait une comparaison en "temps constant", qui va consister à vérifier que les chaînes sont de même longueur avant de vérifier les caractères identiques.
Puis lancer soit l'installation ainsi :
npm install node-hid --runtime=node-webkit --target=0.12.3
Soit :
cd node-hid/
node-pre-gyp rebuild --runtime=node-webkit --target=0.12.3
Selon la version de NWJS on peu changer le target.