报错:Error: EACCES: permission denied, rename ‘/usr/local/lib/node_modules/pnpm‘ -> ‘/usr/local/lib/no
Posted melissaomy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了报错:Error: EACCES: permission denied, rename ‘/usr/local/lib/node_modules/pnpm‘ -> ‘/usr/local/lib/no相关的知识,希望对你有一定的参考价值。
https://blog.csdn.net/astonishqft/article/details/124823381
报错一,在安装
npm install pnpm -g
出现一堆报错
更改您的文件权限..像这样
首先检查谁拥有该目录
ls -la /usr/local/lib/node_modules
它拒绝访问,因为node_module文件夹归root所有
drwxr-xr-x 3 root wheel 102 Jun 24 23:24 node_modules
所以这需要通过将root更改为您的用户来更改,但首先运行以下命令以检查当前用户 如何通过OS X中的命令行获取活动用户的名称?
id -un
然后改变所有者
sudo chown -R [owner]:[owner] /usr/local/lib/node_modules
- 这很有用,但是当我运行命令更改所有者时,我得到了“非法组名”。所以我将命令更改为`sudo chown -R ownerName:/ usr / local / lib / node_modules`并且它可以工作。 (37认同)
- 在某些情况下,在命令中添加 sudo 也不起作用。这对我有用,应该被接受。 (7认同)
- 与其更改权限,不如在文档中建议使用 nvm 安装 npm。见 /sf/answers/4170268651/ (3认同)
- 尽管那是正确的答案,但我已经多次遇到此问题,更好的解决方案是使用nvm。这样,您将不需要使用`chown`更改文件所有者。https://github.com/nvm-sh/nvm (2认同)
- **停止** 做 /sf/answers/3869245131/ 而不是搞乱 `/usr/local/lib/node_modules` 的权限 (2认同)
Ada*_*dam 27
您可以通过 Node 版本管理器或 Node 安装程序安装 npm。在文档中它指出:
我们不建议使用 Node 安装程序,因为 Node 安装过程会将 npm 安装在具有本地权限的目录中,并且在全局运行 npm 包时可能会导致权限错误。
NPM 实际上推荐使用节点版本管理器来避免这些错误。
由于您有权限错误,您可能通过 Node 安装程序安装了 npm,现在您需要使用 nvm(节点版本管理器)重新安装它。
幸运的是,这非常简单。您甚至不需要删除当前版本的 npm 或 Node.js。
你需要做的就是
-
安装nvm。对于 OSX 或 Linux 节点使用:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
这会在您的主目录中创建一个 nvm 文件夹。
然后
-
通过 nvm 安装 npm 和 node.js。为此,只需致电
nvm install node
(“节点”是最新版本的别名)
现在你可以在全球范围安装你的包,而无需使用sudo
或改变的所有者node_modules
的usr
文件夹中。
报错二
pnpm 安装库提示错误
ERR_PNPM_PUBLIC_HOIST_PATTERN_DIFF This modules directory was created using a different public-hoist-pattern value. Run “pnpm install” to recreate the modules directory.
翻译:
PNPM公共提升机模式差异
该模块目录使用不同的公共吊装模式值创建。运行"pnpm install"重新创建modules目录。
解决:
删掉node_module包,重新pnpm i,在安装你想要安装的即可
报错三
根目录下存在 pnpm-workspace.yaml 配置文件,并且在 pnpm-workspace.yaml 中指定工作空间的目录。比如这里我们所有的子包都是放在 packages 目录下,因此修改 pnpm-workspace.yaml 内容如下:
packages:
- 'packages/*'
以上是关于报错:Error: EACCES: permission denied, rename ‘/usr/local/lib/node_modules/pnpm‘ -> ‘/usr/local/lib/no的主要内容,如果未能解决你的问题,请参考以下文章
NPM全局安装依赖权限报错Error: EACCES: permission denied
linux 下 root 权限执行 npm install 报错:Error:EACCES:permission denied ‘xxx‘?
Error: listen EACCES: permission denied 0.0.0.0:80
报错:Error: EACCES: permission denied, rename ‘/usr/local/lib/node_modules/pnpm‘ -> ‘/usr/local/lib/no