'Uncaught (in promise) TypeError: fs.readdirSync is not a function vue + electron
I'm using vue cli and builded electron inside. Here is my package.json
{
"name": "rule-the-world",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"electron:build": "vue-cli-service electron:build",
"electron:serve": "vue-cli-service electron:serve",
"postinstall": "electron-builder install-app-deps",
"postuninstall": "electron-builder install-app-deps"
},
"main": "background.js",
"dependencies": {
"core-js": "^3.6.5",
"fs": "^0.0.1-security",
"globe.gl": "^2.23.0",
"json-loader": "^0.5.7",
"register-service-worker": "^1.7.1",
"vue": "^3.0.0",
"vue-router": "^4.0.0-0",
"vuex": "^4.0.0-0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-plugin-pwa": "~4.5.0",
"@vue/cli-plugin-router": "~4.5.0",
"@vue/cli-plugin-vuex": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"@vue/compiler-sfc": "^3.0.0",
"babel-eslint": "^10.1.0",
"electron": "^16.0.5",
"electron-devtools-installer": "^3.1.0",
"eslint": "^6.7.2",
"eslint-plugin-vue": "^7.0.0",
"sass": "^1.26.5",
"sass-loader": "^8.0.2",
"vue-cli-plugin-electron-builder": "~2.1.1"
}
}
and when I try to use fs in electron window I got an error like "Uncaught (in promise) TypeError: fs.readdirSync", here is my code
const fs = require('fs')
function getFiles(__dirname) {
let filenames = fs.readdirSync(__dirname);
let files = [];
filenames.forEach((file) => {
let _file = new Object();
let data = fs.readFileSync(`${__dirname}/${file}`, {
encoding: "utf8",
flag: "r",
});
let parseData = JSON.parse(data);
_file.name = parseData.name;
_file.folderName = file;
_file.saveDate = parseData.saveDate;
_file.player = new Object();
_file.player.name = parseData.result.inGame.player.name;
_file.player.familyName = parseData.result.inGame.player.familyName;
_file.player.flag = parseData.result.inGame.player.flag;
_file.player.culture = parseData.result.inGame.player.family.culture;
files.push(_file);
});
// Display the file data
return files;
}
And this code was working few months ago, I don't remember what did I changed lastly or did I. It's basically getting save files system for my electron,vue game. I look for a lot of solutions but couldn't find one to work, anyone knew this?
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|