2017-08-03 1 views
0

Frage: Ich möchte meine Elektronen App ein eingebautes 3D-Modell haben, was wäre der beste Weg, um darüber zu gehen?Elektron speichert Dateien intern

Ich speichere es derzeit in der dist/models/foot.babylon.Wenn die App geöffnet ist, möchte ich eine Datei laden. Ich habe versucht mit fetch('/models/foot.babylon'), aber das hat nicht funktioniert.

Meine Ordnerstruktur.

├──.babelrc 
├──.eslintrc 
├──.flowconfig 
├──.gitignore 
├──LICENSE 
├──README.md 
├──dist 
│ ├──bundle.css 
│ ├──bundle.js 
│ ├──index.html 
│ └──models 
│  ├──foot.babylon 
├──main.js 
├──package-lock.json 
├──package.json 
├──src 
│ ├──actions 
│ │ ├──files.js 
│ │ ├──index.js 
│ │ └──types.js 
│ ├──components 
│ ├──containers 
│ │ ├──Analyser 
│ │ ├──App 
│ │ ├──Header 
│ │ └──LiveData 
│ ├──engines 
│ │ ├──RenderEngine.js 
│ │ └──Scene.js 
│ ├──helpers 
│ ├──index.js 
│ ├──menu.js 
│ ├──reducers 
│ ├──routes.js 
│ └──store 
│  └──index.js 
├──template.ejs 
├──tools 
├──webpack.build.config.js 
├──webpack.dev.config.js 
└──yarn.lock 

ich könnte es als eine Zeichenfolge zu einem meiner Js-Dateien importieren, aber die Dateigröße mindestens 10 MB, so wäre es für die Bündelung langsam sein.

Antwort

1

Ihre beste Wette wäre die Verwendung fs Sie könnten einen Begrüßungsbildschirm erstellen, wenn Assets geladen werden, da fs asynchron ist.

fs.readFile(__dirname + "/models/foot.babylon", (err, data) => { 
    if (err) { 
     console.error(err); 
    } else { 
     console.log(data); 
     // Process file data 
     // Remove splash screen and show app 
    } 
}); 
+0

Wo würde die Datei gespeichert, wenn die Anwendung gebündelt ist? – August

+0

Beim Erstellen der App sollte das 'models'-Verzeichnis mit Ihrer App gebündelt sein. Wenn Sie nach dem Ort fragen, um ihn zu lesen, können Sie einfach ['__dirname'] (https://nodejs.org/docs/latest/api/globals.html) wie in meinem Beispiel verwenden, um den Ort zurückzugeben der aktuellen Datei in Ihrem. – y0hami

Verwandte Themen