npm' json-update'没有按预期工作

时间:2017-04-06 05:36:08

标签: node.js electron

我们正在使用npm json-update来更新电子申请中的json个文件。它在当地环境中工作正常,因为我们的项目是在' D' E'或者其他一些驱动器,但是一旦我们安装了应用程序,我们就无法更新{C}中的json文件。驾驶。当我们尝试阅读json它会抛出这样的错误时,

  

错误:EPERM:不允许操作,打开' C:\ Program   文件........... \ product.json.lock'在错误(本机)

并且在写json时会抛出这样的错误,

  

错误:保存JSON文件时出现问题:EPERM:不允许操作,打开   ' C:\ Program Files ........... \ product.json'       在C:\ Program Files ........... \ node_modules \ json-update \ lib \ json-update.js:92:23       在C:\ Program Files ........... \ node_modules \ lockfile \ lockfile.js:61:41       在FSReqWrap.oncomplete(fs.js:123:15)

任何帮助/建议都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

如果你可以确定两个实例不会尝试更新同一个json文件,你可以破解json-update来删除lockfile的使用。它似乎在第42行和第90行:https://github.com/runvnc/json-update/blob/master/lib/json-update.js#L42

但是,如果问题是应用程序没有权限在C:\ Program Files下创建/修改文件,那么这样做可能会让您进入下一个失败状态。感觉更好的解决方案是让您的应用将其数据JSON文件安装到应用程序数据文件夹(app.getPath('userData');),然后在那里进行修改。看看上面的代码,看起来锁文件是在你的json文件所在的目录中生成的,所以如果你遵循这种方法,你也不应该破解json-update。