2015-03-30 8 views
15

Ich war mir nicht sicher, ob dies eine Stackoverflow- oder Serverfault-Frage sein sollte.bcrypt bricht meine Meteor-Anwendung, wie kann ich es reparieren?

Ich habe Meteor Konten-Passwort-Modul installiert und es funktionierte lokal, aber brach meine App bei der Bereitstellung auf dem Server. Hier ist die Schaufel:

ich den neuesten Meteor 1.0.5 lokal auf OSX (OS nur vollständig aktualisiert) Gebäude mit --architecture os.linux.x86_64 Bereitstellen auf Ubuntu 14.04.2 LTS x86_64 (nur aktualisiert) Lauf NodeJS v0.12.1 (frisch gebaut) Serving-App mit nginx v1.4.0

und noch immer:

/home/secrethistory/bundle/programs/server/node_modules/fibers/future.js:245 
              throw(ex); 
               ^
Error: Module did not self-register. 
    at Error (native) 
    at Module.load (module.js:355:32) 
    at Function.Module._load (module.js:310:12) 
    at Module.require (module.js:365:17) 
    at require (module.js:384:17) 
    at bindings (/home/secrethistory/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/node_modules/bindings/bindings.js:74:15) 
    at Object.<anonymous> (/home/secrethistory/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/bcrypt.js:3:35) 
    at Module._compile (module.js:460:26) 
    at Object.Module._extensions..js (module.js:478:10) 
    at Module.load (module.js:355:32) 

Irgendwelche Tipps oder Orte neben aussehen?

+0

Ich denke, es ist der neue Nodejs v0.12 bricht das Zeug. versuchen Sie, den Knoten herunterzustufen und dann versuchen – ajduke

+0

Ich habe das versucht. Und es hat immer noch nicht funktioniert. Ich ging um 5 zurück den ganzen Weg zurück zu 0.10.1. 'Nvm install 0.10.1' –

Antwort

26

Die bcrypt Modul ist plattformabhängig (wie Fasern), so müssen Sie das Paket entfernen, nachdem das Bündel in Ihrem Server Dekomprimieren:

rm -R path/to/bcrypt 

es dann wieder installieren:

npm install bcrypt 
+2

Ja, tatsächlich. Das hat es getan. Vielen Dank. In meinem Installationsskript, nachdem ich zwei zusätzliche Zeilen hinzufügen konnte: 'sudo rm -R./npm/npm-bcrypt/node_modules/bcrypt; sudo npm installieren bcrypt' –

+0

Ich lief in einen ähnlichen Fehler mit SimpleSMTP auch. Gleiche Lösung [hier] (http://stackoverflow.com/questions/28579806/heroku-issue-with-nodemailer/29354086#29354086). –

+2

Wenn es nach der Neuinstallation von bcrypt immer noch nicht funktioniert, vergewissern Sie sich, dass Ihr 'node-gyp' die richtige Version ist, indem Sie' node-gyp -v' ausführen, und wenn es veraltet ist, führen Sie 'npm update node-gyp -g aus 'und danach bcrypt erneut installieren. – Nucleon

1

Wie von Meteor 1.0.5 (und dies gilt auch für die kommende Version 1.1), haben wir noch nicht den gesamten Test-, Validierungs- und QA-Prozess mit Knoten 0.12 durchlaufen. Ich würde empfehlen, mit Knoten 0.10 bis zu diesem Punkt zu bleiben. Während es wahrscheinlich ist, dass es größtenteils funktioniert, ist es möglich, dass einige Kernänderungen notwendig sind, und wie Sie gesehen haben, funktionieren binäre Pakete, die gegen den 0.10 ABI erstellt werden, nicht mit 0.12.

+1

Alles stimmt, aber einige von uns stießen auf die unangenehme Überraschung, dass wir node.js aktualisieren mussten, als wir auf die neuen Versionen von Meteor umstellten. Als wir dann aktualisiert haben, sind wir auf dieses Problem gestoßen. Und das Verwenden von nvm, um zurück zu Knoten 10.x zu wählen, reparierte es immer noch nicht (da anscheinend die Binärdateien geändert worden waren). Daher war ein Workaround erforderlich. –

Verwandte Themen