内部电子存储文件

时间:2017-08-03 08:46:23

标签: javascript electron

问题:我希望我的电子应用程序有一个内置的3D模型,最好的方法是什么?

我目前将它存储在dist / models / foot.babylon中。当应用程序打开时,我想加载一个文件。我尝试使用fetch('/models/foot.babylon'),但这不起作用。

我的文件夹结构。

├──.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

我可以将它作为字符串导入到我的.js文件中,但文件大小至少为10mb,因此捆绑速度会很慢。

1 个答案:

答案 0 :(得分:1)

你最好的选择是使用fs你可以在资产加载时创建一个启动画面,因为fs是异步的。

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
    }
});