VSCode GitBash环境下安装插件出现npm err报错如何修复

报错产生原因
- 核心诱因是npm本地缓存损坏:配置gulp过程中如果出现过网络中断、手动终止安装进程的情况,会残留校验不通过的残缺缓存包,后续安装其他插件时npm读取到损坏缓存就会直接抛出哈希校验类错误
- VSCode集成的GitBash终端存在权限兼容问题:GitBash默认继承VSCode进程权限,部分场景下不足以修改npm全局依赖目录、项目node_modules目录下的文件,npm无法正常更新依赖树时也会抛出同类安装错误
- 锁文件冲突:gulp生态部分老旧依赖的版本标识不规范,
package-lock.json中记录的依赖哈希值和实际拉取到的包哈希不匹配,npm安全校验不通过就会终止安装流程
VSCode搭配GitBash场景的解决步骤
- 先终止所有占用项目文件的进程:包括正在运行的gulp watch任务、其他正在执行的npm安装进程,避免后续删除文件时提示占用。
- 在VSCode打开的GitBash终端中执行命令强制清理npm损坏缓存:
npm cache clean --force
注意:GitBash是Windows下的类shell环境,执行sudo命令会和Windows NTFS权限体系冲突,反而会造成npm目录权限混乱,所有操作直接用普通用户权限执行即可。
- 进入项目根目录,删除存在冲突的依赖文件夹和锁文件:
rm -rf node_modules rm -f package-lock.json
- 执行命令查看npm全局安装路径,给该路径配置当前Windows登录账号的完全控制权限,解决GitBash下全局包写入权限不足的问题:
npm config get prefix - 切换npm源到国内镜像,避免网络波动导致下载的安装包残缺:
npm config set registry https://registry.npmmirror.com - 重新执行项目依赖安装命令,完成后再安装其他gulp插件就不会复现该报错:
npm install
如果全局安装的gulp命令执行报错,先卸载原有全局包再重新安装即可:
npm uninstall -g gulp gulp-cli npm install -g gulp-cli
内容的提问来源于stack exchange,提问作者user19349380
相关产品推荐
相关产品推荐

