EPERM,操作不允许错误,配置存储

16

我知道这是一个常见的node错误,但我的所有故障排除技巧似乎都失败了。

  • Windows 7(32位)
  • Node@0.10.10
  • npm@1.2.25

当尝试运行诸如boweryo(Yeoman)等包命令时,就会出现此问题。为了保持清醒,我在以管理员身份运行的Node.js命令提示符中执行这些命令。

例如,以下是使用yo运行时的输出:

Error: EPERM, operation not permitted 'C:\Users\me\.config\configstore\insight-yo.yml'
    at Object.fs.openSync (fs.js:427:18)
    at Object.fs.writeFileSync (fs.js:966:15)
    at Object.create.all.set (C:\Users\me\AppData\Roaming\npm\node_modules\yo\node_modules\insight\node_modules\configstore\configstore.js:39:7)
    at Object.Configstore (C:\Users\me\AppData\Roaming\npm\node_modules\yo\node_modules\insight\node_modules\configstore\configstore.js:30:11)
    at new Insight (C:\Users\me\AppData\Roaming\npm\node_modules\yo\node_modules\insight\lib\insight.js:20:16)
    at Object.<anonymous (C:\Users\me\AppData\Roaming\npm\node_modules\yo\bin\yo:25:15)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)

问题是node进程无法写入这个.config文件夹。

我尝试了以下解决方法:

  • 重新安装node和单独的软件包(以各种可能的顺序)
  • .config文件夹上设置所有用户的写权限
  • 重新安装git并阅读npm仓库中Windows用户的注释

对此问题有任何想法或故障排除技巧吗?

谢谢!

7个回答

27

我通过删除C:\Users\<你的用户名>\.config\configstore\insight-bower.yml文件解决了这个问题,运行 bower 时它会重新创建该文件。


2
删除 bower-github.yml 对我有用。 - Martin Buezas
1
如果是 .json 而不是 .yml,那就一样了... 删掉它。 - Serj Sagan
在我升级全局/项目/平台级别的 Cordova 库后,我的 cordova-config.json 文件也遇到了同样的问题。删除有问题的文件就可以解决! - Jeff LaFay

3
删除configstore中的.yml文件对我很有帮助,因为这是导致问题的原因。在我的情况下,它是"update-notifier-bower.yml",在你的情况下可能是"insight-yo.yml"。
重新安装bower(npm -g install bower)后,该文件重新出现,但这次不会造成任何损害。
还有人报告说,禁用反病毒软件可以解决此问题。详情请参见报告

1

对我来说,有三个文件在C:\Users\myusername\.config\configstore目录下

(bower-github.yml, insight-bower.json, update-notifier-bower.yml)都被删除了

同时禁用了防病毒软件。

注意:不要忘记显示隐藏文件。


1

只需将“所有用户”的Windows权限更改为“configstore”目录,bower就可以正确安装软件包。


1
当我在Windows上运行Yeoman生成器时,出现了这个错误。 McAfee实时扫描阻止了文件系统的更改。将实时扫描设置为“仅限程序和文档”对我有用。

0

对我来说,使用文件资源管理器导航到文件时会弹出一个窗口,授予我访问该文件的权限。

之后,nodemon 无问题运行。


0

运行 npm cache clean --force 对我有帮助。 在 node 5+ 中,仅使用 npm cache clean 会出现以下警告:

npm ERR! 自 npm@5 起,npm 缓存会自动修复损坏问题,并且从缓存中提取的数据保证有效。如果您想确保一切都一致,请改用 'npm cache verify'。 npm ERR! npm ERR! 如果您确定要删除整个缓存,请使用 --force 重新运行此命令。

NPM 缓存文档

注意:我的真正问题是 package-lock.json 文件。我在本地做了一些事情,以为它们已经被删除了,但到了构建代理时却出现了这个错误。删除 node_modules 文件夹并进行新的 npm install 可能会有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接