2017-12-22 1 views
1

Also versuche ich einen libp2p Knoten mit React Native laufen zu lassen.libp2p für React Native: Wie kommt libp2p herum und benötigt den EventEmitter von NodeJS, wenn er im Browser verwendet wird?

Ich merke, dass es derzeit nicht unterstützt wird (Dez 2017 - kann sich seitdem geändert haben), aber ich entschied mich trotzdem zu versuchen, da es bereits im Browser und NodeJS funktioniert.

Nach libp2p erfordern erhalte ich die Fehlermeldung: bundling failed: UnableToResolveError: Unable to resolve module `events` from `<full path>/node_modules/libp2p/src/index.js`: Module does not exist in the module map

Dies wird React india beschweren, dass es nicht events finden können; Dies ist sinnvoll, da es Teil der NodeJS-Umgebung ist und nicht im Browser (oder in der React Native-Umgebung) verfügbar ist.

Wie wird das im Browser gehandhabt? Oder eher; wie soll libp2p im Browser verwendet werden, wenn sie es überhaupt nicht bündeln?

Die README erwähnt auch eine bestimmte gebündelte Version der Bibliothek für den Einsatz im Browser, aber ich habe es aufgegeben, danach zu suchen.

+0

Ihre beste Wette ist es, 'libp2p' zu optimieren, um eine browserkompatible Ereignisbibliothek wie' EventEmitter3' (https://github.com/primus/eventemitter3) oder 'node-event-emitter' (https: //www.npmjs.com/package/node-event-emitter). Die meisten Ereignisbibliotheken funktionieren sehr ähnlich, daher sollte das Refactoring nicht zu stark sein, abhängig von der Komplexität von libp2p. –

+1

Ich versuche gerade, ein libp2p-Paket zu erstellen, das ich babelize/webpack kann. Wird mit Fortschritt nach Feierlichkeiten kommentieren. –

Antwort

0

Angesichts der fehlenden Dokumentation und Bündelung von libp2p kann ich nur davon ausgehen, dass Sie es selbst bündeln sollen.

Die Erstellung des Bundles funktioniert gut - was die Frage nach der Verwendung im Browser beantwortet - aber libp2p in RN funktioniert immer noch nicht, weil es keine kompatible Webcrypto-Implementierung gibt.

Verwandte Themen