node-webkit无法在app.nw中写入文件

时间:2015-01-07 13:09:45

标签: node-webkit writefile

var jf = require('jsonfile');

jf.writeFile("./setting.json", newSettings, function(err) {
    if (err){
        console.log("writing file err: ", err);
    } else {
        console.log("setting saved successfully.");
    }
});

以上代码在开发(npm开始)和分发(zip到app.nw并将其放在node-webkit.app Resources目录中)成功报告,但只有开发中的文件发生了变化。我不知道为什么。 尝试过utf8和base64编码,两者都是一样的。

或者有办法解决这个问题吗?就像把setting.json文件放在其他地方一样?

1 个答案:

答案 0 :(得分:0)

您要查找的文件位于本地临时文件夹中。例如:“C:/ Users / [YourUserName] / AppData / Local / Temp / [node_webkit_uniqueid]”/。您的设置json文件应位于/ Local / Temp /文件夹中。

获取生产环境的执行目录。尝试:

var live_path = require('path');
var execPath  = live_path.dirname( process.execPath );

要区分生产环境和开发环境,可以在package.json文件中设置环境变量。

"scripts": {
   "start": "set NODE_ENV=development && nw"
}

在您的代码中,您可以像这样检索环境变量。

var env = process.env.NODE_ENV || 'production';
if (env === 'production') {
   //production settings
} else {
   //development settings
}