【问题标题】:Electron write json file working in dev but not in dist电子写入 json 文件在 dev 中工作但不在 dist 中
【发布时间】:2018-07-09 20:49:36
【问题描述】:

我正在使用 Electron 构建应用程序,并在登录后保存配置文件。 当应用程序在开发中重新打开时,它可以工作,但是当它在使用 electron-builder 分发后重新打开时,我必须重新登录。

代码

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

【问题讨论】:

    标签: json node.js electron fs electron-builder


    【解决方案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);
    });
    

    当然,您可能希望根据您的需要调整此解决方案。希望对你有用!

    【讨论】:

      猜你喜欢
      • 2020-11-18
      • 2019-01-26
      • 2018-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      • 2018-09-27
      • 1970-01-01
      相关资源
      最近更新 更多