我有一个电子Webpack应用程序,我想用它在本地保存数据。我正在尝试使用localForage / IndexedDB作为后备存储,但是我的开发周期遇到了一些问题。特别是,当我完全退出电子应用程序并重新启动它之后,似乎无法加载以前持久保存的数据。但是,可以通过热模块重新加载来重新加载应用程序。
我进行了一些挖掘,看起来IndexedDB每次启动应用程序时都会创建一个具有host:port对的目录:
(env) vishalkuo@Vishal's Macbook Pro client $ ll ~/Library/Application\ Support/Electron/IndexedDB/
total 0
8599832812 0 drwx------ 7 vishalkuo staff 224B 7 Jan 19:45 http_localhost_60612.indexeddb.leveldb
8599835990 0 drwx------ 8 vishalkuo staff 256B 7 Jan 22:33 http_localhost_58090.indexeddb.leveldb
8599836127 0 drwx------ 7 vishalkuo staff 224B 7 Jan 22:33 http_localhost_58692.indexeddb.leveldb
8599832810 0 drwx------ 6 vishalkuo staff 192B 7 Jan 22:34 .
8599836209 0 drwx------ 7 vishalkuo staff 224B 7 Jan 22:34 http_localhost_58788.indexeddb.leveldb
,端口似乎与正在运行的webpack-dev-server一致。
我想知道IndexedDB或localForage是否有任何选择来绕过这种命名策略,而有利于用户(如果有的话),或者我是否应该寻找其他存储策略
答案 0 :(得分:0)
我今天遇到了这个问题,我找到了这篇文章。也许这对将来的某人有用。在 app.on("ready", createWindow);
之前的主进程中,我添加了:app.setPath("userData", "DB_NEW_LOCATION");
。
如果您想在构建后保留数据,请不要忘记在 package.json 中添加 "extraFiles": ["DB_NEW_LOCATION"/**/*"]
。