节点fs错误:EPERM:不允许操作,打开

Ser*_*giu 12 fs node.js

我的应用中出现此错误:

错误:EPERM:不允许操作,打开'C:\ Program Files(x86)\ Full Menu\db\main.json'

我的应用程序是用电子样板构建的.我正在使用此函数来获取应用程序根目录的路径:

path.dirname(process.execPath)
Run Code Online (Sandbox Code Playgroud)

这是写入文件的脚本:

fs.writeFile(apath + '/db/' + elem + '.json', JSON.stringify(results)
Run Code Online (Sandbox Code Playgroud)

我知道问题是什么:权限.但是,如果不以管理员身份运行应用程序,我怎么能让它工作?

Hoc*_*eyJ 21

为了搜索者的利益; 我有这个错误.我添加了完整的权限Everyone作为测试,但没有修复它.问题是文件设置为readonly(通过源代码控制).

取消选中readonly文件属性中的选项可解决问题.

  • 也有这个问题,需要使用 Perforce(为我祈祷),并且它在同步文件时定期设置为只读。右键单击>取消选中“只读”修复了该问题。 (2认同)

Ste*_*rin 16

如果您在 docker 中无法打开或修改安装为卷的文件,则重新启动 docker 应该可以解决该问题。

  • 我早该知道。通常,当在 Docker 容器中构建时出现任何新的或突然的看不见的错误时,这将修复它。 (3认同)
  • 这个答案埋藏在我翻阅的数千页中,实际上拯救了我。我快失去理智了。由于某种原因,我的 gulp 不会删除我的 css 地图,并且通常重新启动电脑即可修复它,但这次它没有成功。我尝试了一切,重新启动 Docker 就成功了。不知道如何或为什么,但见鬼! (2认同)

小智 12

在我的 Windows 10 机器上,我在运行旧的 Node JS 项目时遇到了这个错误。我认为 Node 版本 10.16。

无论如何,它试图修改我项目中的一个点文件。确保该文件未在 Windows 上隐藏。取消选中文件属性中的隐藏选项后会弹出。一切正常。

所以要修复:

  1. 在 Windows 资源管理器中右键单击文件
  2. 选择属性
  3. 取消选中隐藏
  4. 单击确定
  5. 重新运行您的命令。

在此处输入图片说明


Rai*_*der 6

我不得不以管理员身份运行节点命令提示符并解决了这个问题。


小智 1

我认为您必须递归地更改该文件的权限,以便执行脚本的用户可以读取/写入该文件。

https://fr.wikipedia.org/wiki/Chmod