【问题标题】:npm ERR! code EACCES, npm install --global yarn met errornpm 错误!代码 EACCES, npm install --global yarn 遇到错误
【发布时间】:2022-01-08 22:28:48
【问题描述】:

Mac mini(M1,2020)

蒙特雷

布朗尼 v1.17.2

nodejs v16.13.4

我正在根据参考(https://www.youtube.com/watch?v=M576WGiDBdQ&t=25510s)学习solidity。

Node.JS 安装没问题

当我尝试这个时

npm install --global yarn

终端给出错误信息

npm ERR! code EACCES
npm ERR! syscall mkdir
npm ERR! path /usr/local/lib/node_modules/yarn
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/yarn'
npm ERR!  [Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/yarn'] {
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/usr/local/lib/node_modules/yarn'
npm ERR! }
npm ERR! 
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR! 
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/liwei/.npm/_logs/2022-01-08T12_13_37_765Z-debug.log
(base) liwei@liweideMac-mini-2 com~apple~CloudDocs % 

我检查了文件的所有者,所有者是root,我应该使用sudo吗?

(base) liwei@liweideMac-mini-2 com~apple~CloudDocs % ls -l /usr/local/lib/node_modules/npm
total 64
-rw-r--r--    1 root  wheel  9742 10 14 08:49 LICENSE
-rw-r--r--    1 root  wheel  4190 10 19 06:36 README.md
drwxr-xr-x    9 root  wheel   288 12  1 19:46 bin
drwxr-xr-x    4 root  wheel   128 12  1 19:46 docs
-rw-r--r--    1 root  wheel   145 11 23 14:00 index.js
drwxr-xr-x   77 root  wheel  2464 12  1 19:46 lib
drwxr-xr-x    5 root  wheel   160 12  1 19:46 man
drwxr-xr-x  188 root  wheel  6016 12  1 19:46 node_modules
-rw-r--r--    1 root  wheel  6007 12  1 19:13 package.json
drwxr-xr-x    3 root  wheel    96 12  1 19:46 tap-snapshots
(base) liwei@liweideMac-mini-2 com~apple~CloudDocs % 

找到这个帖子(Error: EACCES: permission denied, access '/usr/local/lib/node_modules'),换了所有者,stll一个文件不要改变。

(base) liwei@liweideMac-mini-2 com~apple~CloudDocs % sudo chown -R liwei: /usr/local/lib/node_modules 
(base) liwei@liweideMac-mini-2 com~apple~CloudDocs % ls -la /usr/local/lib/node_modules              

total 0
drwxr-xr-x   4 liwei  wheel  128  1  8 11:51 .
drwxr-xr-x   4 root   wheel  128  1  8 11:51 ..
drwxr-xr-x   7 liwei  wheel  224 12  1 19:46 corepack
drwxr-xr-x  13 liwei  wheel  416 12  1 19:46 npm

这两个点是什么?

【问题讨论】:

    标签: node.js linux macos npm


    【解决方案1】:

    参考答案在这里 (Error: EACCES: permission denied, access '/usr/local/lib/node_modules')

    这对我来说很快。

    为了最大程度地减少权限错误的可能性,您可以将 npm 配置为使用不同的目录。在此示例中,您将在主目录中创建并使用一个隐藏目录。

    备份您的计算机。在命令行的主目录中,为全局安装创建一个目录:

    mkdir ~/.npm-global
    

    配置 npm 以使用新的目录路径:

    npm config set prefix '~/.npm-global'
    

    在您首选的文本编辑器中,打开或创建一个

    ~/.profile

    文件并添加这一行:

    export PATH=~/.npm-global/bin:$PATH
    

    在命令行上,更新您的系统变量:

    source ~/.profile

    要测试您的新配置,请在不使用 sudo 的情况下全局安装包

    【讨论】:

      猜你喜欢
      • 2020-01-19
      • 1970-01-01
      • 2016-10-28
      • 2018-11-15
      • 2020-05-08
      • 2018-03-01
      • 1970-01-01
      • 2018-07-18
      • 2019-06-13
      相关资源
      最近更新 更多