0
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 start)和分发(zip 到 app.nw 并放在 node-webkit.app 资源目录中)都成功报告,但只有开发中的文件发生了变化。我不知道为什么。试过utf8和base64编码,都是一样的。

或者有没有办法绕过它?就像将 setting.json 文件放在其他地方一样?

4

1 回答 1

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
}
于 2015-05-12T15:37:19.820 回答