我正在使用Electron进行应用程序构建,登录后会保存配置文件。 当应用程序在开发中重新打开时,它可以工作,但是当它与电子建设者一起分发后重新打开时,我必须再次登录。
代码
const {writeFile} = require('fs');
const {join} = require('path');
function write(config) {
writeFile(join(__dirname, './config.json'), JSON.stringify(config, null, 4), (err) => {
cb(err);
})
}
write(someJsonObject);
项目:
电子1.7.11
电子建设者19.55.2
节点8.8.1
答案 0 :(得分:1)
首先检查您的生产应用程序是否正在构建asar文件,因为它是只读的,并且您尝试直接写入__dirname
。
我的建议是使用可写目录作为配置文件,例如:
const fs = require('fs');
const _HOME_ = require('os').homedir();
const _SEP_ = require('path').sep;
const _APPHOME_ = `${_HOME_}${_SEP_}.myapp${_SEP_}`;
if (!fs.existsSync(_APPHOME_)) {//Check dir exists or create it
fs.mkdir(_APPHOME_, '0777', true, function () {
console.log('Created app home dir :)');
});
}
fs.writeFile(_APPHOME_ + 'config.json'), JSON.stringify(config, null, 4), (err) => {
cb(err);
});
当然,您可能希望根据您的需求提供此解决方案。希望对你有用!