当我尝试在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)在两个用户中都可以正常运行。
1条答案
按热度按时间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