HBuilder X 下载vue-router时 发生异常:npm ERR! code EPERM

时间:2024-10-15 07:17:12

一、异常

PS C:\Users\GL\Documents\HBuilderProjects\vj1> npm i vue-router@3.6.5  
npm ERR! code EPERM
npm ERR! syscall mkdir
npm ERR! path C:\Program Files\nodejs\node_cache\_cacache
npm ERR! errno EPERM
npm ERR! FetchError: Invalid response body while trying to fetch https://registry.npmmirror.com/@vue%2fcli-plugin-babel: EP
ERM: operation not permitted, mkdir 'C:\Program Files\nodejs\node_cache\_cacache'
npm ERR!     at C:\Program Files\nodejs\node_modules\npm\node_modules\minipass-fetch\lib\body.js:162:15
npm ERR!     at async Arborist.[nodeFromEdge] (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\a
rborist\build-ideal-tree.js:1082:19)
npm ERR!     at async Arborist.[buildDepStep] (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\a
rborist\build-ideal-tree.js:951:11)
npm ERR!     at async Arborist.buildIdealTree (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\a
rborist\build-ideal-tree.js:215:7)
npm ERR!     at async Promise.all (index 1)

二、原因

   在修改npm的全局安装路径之后,再执行npm install 包 -g或是npm install 包时发生,但在管理员身份下运行cmd,就能执行成功。 

2.1 修改npm全局安装:

npm config set prefix "C:\Program Files\nodejs\node_global"
npm config set cache "C:\Program Files\nodejs\node_cache"

 
 查看在C盘User/用户名/下有一个.npmrc的文件,(将上述node_global文件夹的路径加入环境变量)

 

注意:不能配置哦!导致该安装问题的原因
   没有管理员权限,无法在node_global和node_cache两个文件夹下进行一些必要的操作 

三、解决

  删除用户下的.npmrc文件,即不改变全局安装的路径(本质问题仍没有解决,全局还是会安装在C盘)
  每次都用管理员身份运行命令行(hbuilderX 下的命令行默认也不是管理员身份运行的)
  直接修改node_global和node_cache文件夹的权限:
  右键文件夹,打开属性,切换到安全选项卡

选择编辑,将没有打钩的位置全部打上钩(即将其它用户的权限设置为与管理员相同),应用即可。

测试

> npm i vue-router@3.6.5