Comments (7)
vuex-electron‘s createPersistedState
method , depend electron-store
<- conf
<- write-file-atomic
. and the method writeFileSync
in write-file-atomic
use fs.renameSync
.
But, fs.renameSync
Sometimes it goes wrong when multithreading because race condition。and every electron window is a rendering process。So,there is no solution until write-file-atomic
solves the problem.
We can find that the root cause of the problem is multithreading, so here's an idea. We can also rewrite createPersistedState
method to store data locally, only in the main process
from vuex-electron.
Resolved issues, we don't use the vuex-electron to do it;
from vuex-electron.
from vuex-electron.
Resolved issues, we don't use the vuex-electron to do it;
Hi, what did you change?
from vuex-electron.
vuex-electron‘s
createPersistedState
method , dependelectron-store
<-conf
<-write-file-atomic
. and the methodwriteFileSync
inwrite-file-atomic
usefs.renameSync
.But,
fs.renameSync
Sometimes it goes wrong when multithreading because race condition。and every electron window is a rendering process。So,there is no solution untilwrite-file-atomic
solves the problem.We can find that the root cause of the problem is multithreading, so here's an idea. We can also rewrite
createPersistedState
method to store data locally, only in the main process
Hi @zjruan, I used a background process and got this error. Is there a specific solution?
from vuex-electron.
Hi Guys,
Is the bug fixed ?
Best regards,
Lenaïc
from vuex-electron.
I got a fix for you guys. I struggled with that for my application on my windows users and it is really annoying.
However, I've found a valide workarround.
The error and crash happens due the thrown error
in the plugin.
So you 2 options. Either you fix the race condition or you handle the Storage creation properly.
I am using 4 windows on my side and all of them have parallel access to the storage which makes everything complicated but however I could get it running without hassle once I put the creation in a while loop.
function createStore(){
return new Vuex.Store({
plugins: [
pathify.plugin,
createPersistedState({
throttle: 1000,
whitelist: (mutation) => true,
}),
createSharedMutations()
],
modules
})
}
let store
while(store === undefined){
try {
store = createStore()
break;
}
catch(e){
// alert("Error in Store, guess race condition. Recreating Storage." + e)
continue;
}
}
export default store
from vuex-electron.
Related Issues (20)
- Not updating the state HOT 4
- Maintainers required HOT 5
- Unable to use code in actions with createSharedMutations HOT 3
- Locally stored state doesn't get updated and causes weird merges HOT 4
- caching data In nuxt js , vue
- Bump deepmerge
- vuex-electron doesn't support batch deleting by condition from vuex-orm HOT 2
- Could not find a declaration file HOT 1
- dispatch HOT 1
- No way to configure the electron-store instance outside of changing the file name HOT 1
- Failed to serialize arguments HOT 2
- [shared data] Master init failed HOT 3
- [Vuex Electron] Storage is not valid HOT 4
- How to rehydrate after restarting or reloading. HOT 2
- No console or network logged HOT 1
- [conf, ajv] DevTools failed to load SourceMaps HOT 4
- [fix] [Vuex Electron] Storage is not valid. Please, read the docs.
- 'createPersistedState' add options 'cwd'?
- Webpack 5 incompatibility
- the package electron-store is not lastest ,Cannot read properties of undefined (reading 'app') HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vuex-electron.