阅读量:2
报错的解决方案
原因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) }