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

时间:2013-06-07 16:37:20

标签: windows node.js windows-7 permissions

我知道这是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文件夹
  • 上的所有用户设置写权限
  • 在阅读npm存储库中的Windows用户注释后重新安装git

有关此问题的任何想法或疑难解答技巧?

谢谢!

7 个答案:

答案 0 :(得分:24)

我通过删除C:\Users\<your username>\.config\configstore\insight-bower.yml处的文件解决了问题,bower将在运行时重新创建。

答案 1 :(得分:3)

我可以删除导致问题的configstore中的.yml文件。在我的情况下,它是“update-notifier-bower.yml”,在你的情况下它可能是“insight-yo.yml”。

重新安装凉亭(npm -g install bower)后,文件重新出现,但这次没有造成任何伤害。

反病毒软件的停用也解决了这个问题reported

答案 2 :(得分:1)

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

(bower-github.yml,insight-bower.json,update-notifier-bower.yml)删除了所有三个

还禁用了防病毒软件。

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

答案 3 :(得分:1)

只需更改&#34;所有用户&#34;的窗口权限进入&#34; configstore&#34;目录和凉亭将正确安装包

答案 4 :(得分:1)

在Windows上运行Yeoman生成器时出现此错误。 McAfee实时扫描阻止了文件系统的更改。将实时扫描设置为&#34;仅限程序和文档&#34;为我工作。

答案 5 :(得分:0)

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

之后nodemon没有问题。

答案 6 :(得分:0)

正在运行npm cache clean --force帮助了我。 npm cache clean本身与节点5+一起发出此警告:

  

npm ERR!从npm @ 5开始,npm缓存会自行修复损坏问题,并保证从缓存中提取的数据有效。如果要确保一切都一致,请改用“npm cache verify”。   错误的ERR!   错误的ERR!如果您确定要删除整个缓存,请使用--force。

重新运行此命令

NPM cache documentation

注意:我的真正问题是package-lock.json文件。我在本地完成了一些事情,并认为它们被删除了,但是到了构建代理并得到了这个错误。删除node_modules文件夹并执行一个新的npm install

可能会有所帮助