npm install报错Error:EPERM:operation not permitted,rename解决办法

 更新时间:2024年01月08日 15:30:56   作者:凌祈丶微光  
这篇文章主要给大家介绍了关于npm install报错Error:EPERM:operation not permitted,rename的解决办法,文中介绍了可能遇到的多种原因以及解决办法,需要的朋友可以参考下

原因1: 权限不足

用管理员身份打开终端再执行命令。

原因2:缓存出错

方法1

  • 删除C:\Users{账户}\下的.npmrc文件
  • 删除node_modules文件夹
  • 执行命令npm cache clean -f
  • 然后执行安装命令

方法2

  • 删除node_modules文件夹
  • 执行命令npm cache clean -f
  • 重启电脑
  • 再次执行安装命令

原因3:npm版本不够

  • 执行npm install npm@6.0.0
  • 执行安装命令

原因4:网络不稳定

方法1

  • 切换npm的下载源:npm config set registry https://registry.npm.taobao.org
  • 检查当前下载源:npm config get registry,如果结果是上面的这个淘宝源,就切换成功了
  • 再次执行安装命令

方法2

  • 在安装命令后面加上--registry https://registry.npm.taobao.org

附上官方源地址: registry https://registry.npmjs.org/

原因5: 杀毒软件问题

方法1

关闭杀毒软件,然后再运行几次这个安装命令

方法2

  • 找到该文件:[NODE_HOME]/node_modules/npm/node_modules/graceful_fs/polyfills.js
  • 在其中查找以下内容:
if (process.platform === "win32") {
//或者是
if (platform === "win32") {
  • 在找到的位置的下面,修改文件为
/*
说明:
在这个语句中,有一个超时,在出现错误时进行重试。
问题是,在某些情况下,在超时之后,文件仍然被A/V锁定。
解决方案是去掉超时并让这个语句循环。对先前代码的更改进行了注释:
*/

if (platform === "win32") {

fs.rename = (function (fs$rename) { return function (from, to, cb) {
  var start = Date.now()
  var backoff = 0;
  fs$rename(from, to, function CB (er) {
    if (er
        && (er.code === "EACCES" || er.code === "EPERM")
        /*&& Date.now() - start < 60000*/) {
            console.log("Retrying rename file: " + from + " <> " + to)
            fs$rename(from, to, CB);
      /*setTimeout(function() {
        fs.stat(to, function (stater, st) {
          if (stater && stater.code === "ENOENT")
            fs$rename(from, to, CB);
          else
            cb(er)
        })
      }, backoff)*/
      if (backoff < 100)
        backoff += 10;
      return;
    }
    if (cb) cb(er)
  })
}})(fs.rename)
}

总结 

到此这篇关于npm install报错Error:EPERM:operation not permitted,rename解决办法的文章就介绍到这了,更多相关npm install报错Error EPERM内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 微信小程序实现底部弹出模态框

    微信小程序实现底部弹出模态框

    这篇文章主要为大家详细介绍了微信小程序实现底部弹出模态框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • JavaScript实现简单计时器

    JavaScript实现简单计时器

    这篇文章主要为大家详细介绍了JavaScript实现简单计时器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • js简单实现调整网页字体大小的方法

    js简单实现调整网页字体大小的方法

    这篇文章主要介绍了js简单实现调整网页字体大小的方法,通过javascript动态修改页面元素样式实现调整网页字体的功能,非常简单实用,需要的朋友可以参考下
    2016-07-07
  • JavaScript模块模式实例详解

    JavaScript模块模式实例详解

    这篇文章主要介绍了JavaScript模块模式,结合实例形式详细分析了js模块模式的相关概念、功能、扩展等操作技巧,需要的朋友可以参考下
    2017-10-10
  • 修改js confirm alert 提示框文字的简单实例

    修改js confirm alert 提示框文字的简单实例

    下面小编就为大家带来一篇修改js confirm alert 提示框文字的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • JavaScript验证18位身份证号码最后一位正确性的实现代码

    JavaScript验证18位身份证号码最后一位正确性的实现代码

    这篇文章主要介绍了JavaScript验证18位身份证号码最后一位正确性的实现代码,小编亲测有效,需要的朋友可以参考下
    2014-08-08
  • JS原生轮播图的简单实现(推荐)

    JS原生轮播图的简单实现(推荐)

    下面小编就为大家带来一篇JS原生轮播图的简单实现(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 一段效率很高的for循环语句使用方法

    一段效率很高的for循环语句使用方法

    一段效率很高的for循环语句使用方法...
    2007-08-08
  • 浅析js中的every()对空数组总返回true

    浅析js中的every()对空数组总返回true

    JavaScript 语言的核心部分足够大,以至于我们很容易误解其某些部分的工作方式,本文就来和大家一起讨论下为什么JS中的 every()对空数组总返回 true,需要的可以参考下
    2023-09-09
  • ES6深入理解之“let”能替代”var“吗?

    ES6深入理解之“let”能替代”var“吗?

    这篇文章主要介绍了关于ES6之"let"能替代"var"的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-06-06

最新评论