任何npm,gulp命令都会返回错误,并且只能在admin中运行

fkvaft9z  于 2023-04-18  发布在  Gulp
关注(0)|答案(1)|浏览(185)

当我尝试在Git Bash/PS中运行任何npm/gulp命令时,我得到以下错误

npm install
internal/fs/utils.js:269
    throw err;
    ^

Error: EPERM: operation not permitted, lstat 'C:\Users\<admin user account>'
←[90m    at Object.realpathSync (fs.js:1646:7)←[39m
←[90m    at toRealPath (internal/modules/cjs/loader.js:336:13)←[39m
←[90m    at Function.Module._findPath (internal/modules/cjs/loader.js:492:22)←[39m
←[90m    at resolveMainPath (internal/modules/run_main.js:12:25)←[39m
←[90m    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:54:24)←[39m
←[90m    at internal/main/run_main_module.js:17:47←[39m {
  errno: ←[33m-4048←[39m,
  syscall: ←[32m'lstat'←[39m,
  code: ←[32m'EPERM'←[39m,
  path: ←[32m'C:\\Users\\<admin user account>'←[39m
}
internal/fs/utils.js:269
    throw err;
    ^

Error: EPERM: operation not permitted, lstat 'C:\Users\<admin user account>'
←[90m    at Object.realpathSync (fs.js:1646:7)←[39m
←[90m    at toRealPath (internal/modules/cjs/loader.js:336:13)←[39m
←[90m    at Function.Module._findPath (internal/modules/cjs/loader.js:492:22)←[39m
←[90m    at resolveMainPath (internal/modules/run_main.js:12:25)←[39m
←[90m    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:54:24)←[39m
←[90m    at internal/main/run_main_module.js:17:47←[39m {
  errno: ←[33m-4048←[39m,
  syscall: ←[32m'lstat'←[39m,
  code: ←[32m'EPERM'←[39m,
  path: ←[32m'C:\\Users\\<admin user account>'←[39m
}

我已经为我的Path设置了环境变量,使其指向Program Files中的nodejs文件夹,用于我的管理员和普通用户帐户,但仍然只能以管理员身份运行npm和gulp命令。这种情况发生在C驱动器上的任何位置,但其他命令(例如. dotnet,node)在两个用户中都可以正常运行。

svgewumm

svgewumm1#

看起来这个问题似乎与我的nvm安装每个节点版本的位置有关。
nvm将每个版本安装到我的admin用户帐户中nvm目录下的nodejs文件中,路径变量指向我的Program Files中的nodejs文件夹,实际上是该admin用户帐户的快捷方式。由于无法访问,所有npm命令都失败了。
我已经切换了nvm的根路径:
1.以管理员身份打开cmd
1.运行nvm root来检查当前的根目录(这是在我的管理员用户文件夹中,例如C:\Users\<admin user>\AppData\Roaming\nvm
1.删除C:\Program Files\nodejs快捷方式文件夹
1.创建C:\Program Files\nodev文件夹
1.运行nvm root "C:\Program Files\nodev",将根目录设置为Program Files中的新nodev文件夹,以保存通过nvm安装的节点版本
1.使用nvm重新安装一个版本的npm
1.以非管理员身份打开cmd窗口,运行node -v以确认正在使用正确的节点版本,并运行npm -v以确认可以使用npm

相关问题