2016-07-27 9 views
1

Ich arbeite an einer Elektronen-App mit Gundb. Nachdem ich alles andere funktionierte, machte ich eine npm install --save gun. Es beendet mit diesem warnen:Webpack, Pistole, kann Dateien nicht auflösen, etc, Pistole erfordern kann Modul 'fs' nicht lösen

npm WARN optional Skipping failed optional dependency /chokidar/fsevents: 
npm WARN notsup Not compatible with your operating system or architecture: [email protected] 

Wenn ich versuche zu:

require('gun'); 
var endpoints; 
var gun = Gun(endpoints); 

ich eine sehr lange Liste von Fehlern ich nicht da machen kann. Sie beginnen mit:

.../node_modules/fs doesn't exist 
.../node_modules/fs.webpack.js doesn't exist 
.../node_modules/fs.web.js doesn't exist 
.../node_modules/fs.js doesn't exist 
.../node_modules/fs.json doesn't exist 

und die folgenden nicht auflösen kann:

@ ./~/gun/lib/file.js 14:10-23 
@ ./~/gun/lib/wsp.js 61:39-52 
@ ./~/ws/lib/WebSocketServer.js 15:10-2 
@ ./~/options/lib/options.js 6:9-2 
@ ./~/aws-sdk/lib/api_loader.js 1:9-22 
@ ./~/aws-sdk/lib/services.js 1:9-22 

ich auf Linux bin. Ist fsevent eine Abhängigkeit von gun npm?

UPDATE
Um so viele andere Variablen wie möglich zu entfernen, reduzierte ich meine package.json Datei auf nur Elektron .... mögliche Probleme mit webpack beseitigen und andere Abhängigkeiten. Ich löschte auch meine node_module und tat eine frische npm install & npm install gun.

, dass ein sinnvoller Fehler aufgedeckt:

Uncaught ReferenceError: Gun is not defined    gun.js:1470 

die zu spitz:

if(typeof window !== "undefined"){ Gun.request = request } 
if(typeof module !== "undefined" && module.exports){ module.exports.request = request } 
+0

Die fsevent Warnung ziemlich normal. Sie sind nicht verbunden. –

+0

Diese Frage könnte auch hilfreich sein für andere Webpack/GUN Fehler (für diejenigen, die auf diese Frage von Google geklickt haben, aber es war nicht das richtige Problem): http://stackoverflow.com/questions/39001582/running-gunjs-with -reactjs-and-webpack-throws-Referenz-Fehler-in-Konsole/39003291 # 39003291 – marknadal

Antwort

3

das ein Gewehr Fehler und die Pistole Team war es heute morgen korrigiert. Nachdem der Fehler behoben wurde und ich Pistole in meinem Projekt aktualisiert, blieb ich noch mit Problemen mit webpack Bündelung:

WARNING in ./~/ws/lib/BufferUtil.js 
Module not found: Error: Cannot resolve module 'bufferutil' in /node_modules/ws/lib 
@ ./~/ws/lib/BufferUtil.js 10:19-40 

WARNING in ./~/ws/lib/Validation.js 
Module not found: Error: Cannot resolve module 'utf-8-validate' in /node_modules/ws/lib 
@ ./~/ws/lib/Validation.js 10:19-44 

WARNING in ./~/formidable/lib/incoming_form.js 
Critical dependencies: 
1:43-50 require function is used in a way in which dependencies cannot be statically extracted 
@ ./~/formidable/lib/incoming_form.js 1:43-50 

WARNING in ./~/formidable/lib/file.js 
Critical dependencies: 
1:43-50 require function is used in a way in which dependencies cannot be statically extracted 
@ ./~/formidable/lib/file.js 1:43-50 

WARNING in ./~/formidable/lib/json_parser.js 
Critical dependencies: 
1:43-50 require function is used in a way in which dependencies cannot be statically extracted 
@ ./~/formidable/lib/json_parser.js 1:43-50 

WARNING in ./~/formidable/lib/querystring_parser.js 
Critical dependencies: 
1:43-50 require function is used in a way in which dependencies cannot be statically extracted 
@ ./~/formidable/lib/querystring_parser.js 1:43-50 

WARNING in ./~/aws-sdk/lib/util.js 
Critical dependencies: 
40:30-45 the request of a dependency is an expression 
43:11-53 the request of a dependency is an expression 
@ ./~/aws-sdk/lib/util.js 40:30-45 43:11-53 

WARNING in ./~/aws-sdk/lib/api_loader.js 
Critical dependencies: 
13:15-59 the request of a dependency is an expression 
104:12-46 the request of a dependency is an expression 
108:21-58 the request of a dependency is an expression 
114:18-52 the request of a dependency is an expression 
@ ./~/aws-sdk/lib/api_loader.js 13:15-59 104:12-46 108:21-58 114:18-52 

ich folgende zu meinem webpack.config.js hinzufügen hatte Pistole mit webpack zu verwenden:

var webpack = require('webpack'); 
module.exports = { 
    devtool: "source-map", 
    target: "node", 

.... 

    module: { 
    noParse: [/aws-sdk/], 

.... 

plugins: [ 
    new webpack.DefinePlugin({ "global.GENTLY": false }) 
] 
.... 

an diesem Punkt alles funktioniert, obwohl ich immer noch die folgenden Fehler in der bash hatte:

WARNING in ./~/ws/lib/BufferUtil.js 
Module not found: Error: Cannot resolve module 'bufferutil' in /node_modules/ws/lib 
@ ./~/ws/lib/BufferUtil.js 10:19-40 

WARNING in ./~/ws/lib/Validation.js 
Module not found: Error: Cannot resolve module 'utf-8-validate' in /node_modules/ws/lib 
@ ./~/ws/lib/Validation.js 10:19-44 
+0

Awesome! Froh, unsere Reparatur zu hören, haben wir das große Problem gelöst. Hoffentlich können wir schließlich auch diese letzten lästigen WARNING/ERROR-Nachrichten loswerden. Vielen Dank für Ihre Antwort, es ist sehr geschätzt! – marknadal

+0

Da dies ein bekanntes Problem ist, an dem @marknadal und seine Freunde arbeiten, habe ich 'stats: {warnings: false}' als meine schmutzige Lösung verwendet, um das Rauschen zu reduzieren. – aleksblago

+0

@aleksblago oh, was half das Problem auch? Ich werde eine weitere Antwort hinzufügen über 'require (' gun/gun '); – marknadal

1

Vorerst im Browser sollen Sie:

var Gun = require('gun/gun'); 

Um Ihr Problem zu beheben. Oder verwenden Sie ein Skript-Tag, das Gun global exportiert.

In Zukunft werden wir versuchen und erfordern haben (‚Waffe‘) Umwelt automatisch erkennen und nicht automatisch schließen NodeJS nur Code (wie fs, WebSockets, http, etc.)

Verwandte Themen