首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

npm安装全局不能在mac上工作,说我没有权限?缺少对/usr/local/lib/node_modules的写访问权限

npm是Node.js的包管理器,用于安装、管理和发布JavaScript模块。在macOS上,如果你在使用npm安装全局模块时遇到权限问题,可能是因为缺少对/usr/local/lib/node_modules目录的写访问权限。

解决这个问题的方法有两种:

  1. 使用sudo命令:在终端中执行以下命令,使用管理员权限安装全局模块。
代码语言:txt
复制
sudo npm install -g <module_name>

这会要求你输入管理员密码,然后npm就能够在/usr/local/lib/node_modules目录下安装全局模块了。

  1. 更改npm的默认全局安装目录:你可以通过以下命令更改npm的全局安装目录,使其指向你有写访问权限的目录。
代码语言:txt
复制
npm config set prefix <path_to_directory>

其中,<path_to_directory>是你希望设置的全局安装目录的路径。例如,你可以将其设置为你的用户目录下的一个文件夹,如~/npm-global。

然后,将该目录添加到你的环境变量中,以便能够直接运行全局安装的模块。

代码语言:txt
复制
export PATH="$PATH:<path_to_directory>/bin"

注意,这种方法需要你手动创建指定的目录,并确保你有写访问权限。

总结起来,解决npm全局安装权限问题的方法有两种:使用sudo命令或更改npm的默认全局安装目录。具体选择哪种方法取决于你的需求和偏好。

关于npm的更多信息和使用方法,你可以参考腾讯云的产品介绍页面:腾讯云云开发(CloudBase)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

React-Native For Android 环境搭建及踩坑

_extensions..js (module.js:478:10) 首先查看已经安装在全局的模块,以便删除这些全局模块后再按照不同的 node 版本重新进行全局安装, 运行命令npm ls -g --...depth=0 之后删除全局node_modules和node #删除全局 node_modules 目录 sudo rm -rf /usr/local/lib/node_modules #删除 node...sudo rm /usr/local/bin/node #删除全局 node 模块注册的软链 cd /usr/local/bin && ls -l | grep ".....很明显,没有创建设备,建个虚拟设备,或者插上Android手机就可以了,详细的可以看上面说的安卓环境搭建。...输入你电脑的IP地址和端口号(譬如10.0.1.1:8081)。在Mac上,你可以在系统设置/网络里找查询你的IP地址。在Windows上,打开命令提示符并输入ipconfig来查询你的IP地址。

1.7K60
  • 解决nvm command not found 问题

    nvm 安装 卸载全局安装的 node/npm 在官网下载的 node 安装包,运行后会自动安装在全局目录,使用过程中经常会遇到一些权限问题,所以推荐按照以下方法卸载全局安装的 node/npm 打开 .../usr/local/lib,删除 node 和 node_modules 相关的文件和文件夹 打开 /usr/local/include,删除 node 和 node_modules 相关的文件和文件夹... 以及 include 文件夹,并且删除所有与 node 和 node_modules 相关的文件以及文件夹 打开 /usr/local/bin 并删除 node 可执行文件 可能需要的额外指令 sudo...rm /usr/local/bin/npm sudo rm /usr/local/share/man/man1/node.1 sudo rm /usr/local/lib/dtrace/node.d...sudo rm -rf /opt/local/lib/node_modules 安装nvm 安装脚本: curl -o- https://raw.githubusercontent.com/nvm-sh

    6.5K10

    全局安装 npm 包报错没有权限

    问题 在全局安装 npm 包的时候,比如 npm i npm-check -g,可能会报错,提示没有权限 Error: EACCES: permission denied, access '/usr.../local/lib/node_modules' 复制代码 解决方式 1.查看 node_modules 目录的所有者 ls -la /usr/local/lib/node_modules -----...命令,看到我们现在登陆的用户是 anna,不是 root,于是没有权限也是符合预期的,需要把 node_module 的所有者换成 anna(这里只是一个例子,以自己尝试的名字为准) 3.换下目录所有者...(注意换下用户名 anna) sudo chown -R anna: /usr/local/lib/node_modules chown 命令是将指定文件的拥有者改为指定的用户或组 参数 -R 处理指定目录以及其子目录下的所有文件...具体可以看下 chown 命令的介绍:www.cnblogs.com/peida/archi… 4.结束 这样 /usr/local/lib/node_modules 目录的所有者就更换完毕了,可以正常在全局安装

    1.9K00

    Mac npm install permission denied

    在macOS系统下,npm默认的全局安装路径是在/usr/local/lib/node_modules下。...例如:当我们执行npm i -g vue-cli时,实际上是把vue-cli这个模块安装到了/usr/local/lib/node_modules目录下了。...⚠️注意: /usr/local/lib这个是系统目录,会有权限问题,虽然可以使用sudo执行,但是还是有部分机器,即使使用root用户执行npm i -g xxx 全局安装某个模块还是会出现EACCES...解决办法: 通过修改npm全局安装模块的路径解决,将npm全局安装模块的路径,修改到当前登陆用户的HOME目录下即可,这样用不用sudo都不会出现EACCES permissions`权限被拒绝问题了。...操作 查看当前npm的默认配置 npm config ls 1、在你的用户主目录下创建.npm-global文件夹作为npm全局安装的目录 mkdir ~/.npm-global 2、修改npm使用新的全局安装路径

    1.3K20

    使用 nvm 管理不同版本的 node 与 npm

    一、卸载已安装到全局的 node/npm 如果之前是在官网下载的 node 安装包,运行后会自动安装在全局目录,其中 node 命令在 /usr/local/bin/node ,npm 命令在全局 node_modules...目录中,具体路径为 /usr/local/lib/node_modules/npm 安装 nvm 之后最好先删除下已安装的 node 和全局 node 模块: npm ls -g --depth=0...#查看已经安装在全局的模块,以便删除这些全局模块后再按照不同的 node 版本重新进行全局安装 sudo rm -rf /usr/local/lib/node_modules #删除全局 node_modules...由于 npm 安装的模块路径均为 /usr/local/lib/node_modules ,当使用 n 切换不同的 node 版本时,实际上会共用全局的 node/npm 目录。 ...当然,如果你用的是 windows 操作系统,我只能说 …… 朋友,能不能早点换个 Mac ,做一个有品位的程序猿呢:P

    2.7K70

    Node.js 在个推的微服务实践:基于容器的一站式命令行工具链

    Dockerfile: # 公共依赖层的 Dockerfile FROM node:10 RUN mkdir -p /usr/local/lib/webnode/node_modules \ &&...cd /usr/local/lib/webnode \ && npm install webnode ENV NODE_PATH /usr/local/lib/webnode/node_modules...前者,每次 docker build 时,只要项目内任何代码变了,npm install 的缓存都会失效,需要重新安装,而后者仅当 package*.json 发生改变之时才会触发重新 npm install...二是CLI 脚本不用处处考虑跨平台兼容的问题,比如: sed 在 Linux 和 Mac 下工作行为不一致的问题之类的。...Docker for Mac对于文件权限有一些特别的行为,具体可以参见:https://docs.docker.com/docker-for-mac/osxfs/#ownership 对于 Host 是

    75310

    使用 Node,如何制作一个专业的命令行工具?

    /lib/node_modules/markdown-read/md-read-cli.js 从中可以看出关于 Node 全局命令行的原理: npm 全局下载某个 package 到路径 /usr/local.../lib/node_modules 下 (yarn 同理,对应路径 ~/.config/yarn/global/node_modules) 根据该库的 package.json 中 bin 字段的指示,...因为 POSIX 兼容繁杂的规则,以此衍生出了关于解析命令参数的多个库,站在巨人的肩膀上,在实际工作中就直接开用吧!...发布到 npm 仓库,可使所有人使用你的命令行工具,这也是最重要的一步 # 发布之前需要 npm login,登录到 npm registory $ npm publish 发版成功后全局下载命令行工具...,开始使用,示例用它抓取下我的博客首页 $ npm i -g markdown-read /usr/local/bin/markdown -> /usr/local/lib/node_modules/markdown-read

    1.8K20

    npm 入门教程

    在本文中,我将要介绍 npm 的基本用法,告诉你们怎么安装安装本地和全局模块包,怎么删除,升级和安装一个特定版本的模块。同时我还会介绍怎么利用 package.json 文件来管理你的依赖。...本地模式下,所有的模块包安装在你当前工作目录下的 node_modules 文件夹中,能被当前用户访问到。...全局模式则是将模块安装在 {prefix}/lib/node_modules/ 中,为 root 用户所有({prefix} 通常是 /usr/ 或者 /usr/local])。...这意味着当你想全局安装模块的时候,出于安全性的考虑和避免解析第三方的依赖模块时可以引发的权限错误,你需要使用 sudo 命令。 ?...假设你把你的工程文件拷贝到了另外一台机器上,并且我们想安装这些依赖。让我们先删除 node_modules 文件夹,然后执行 npm install 命令。

    1.4K20

    解决mac上每次升级nodejs都要重新安装扩展包的问题

    再加上一些扩展包存储网站被墙的问题,这个过程真是令人痛不欲生。 今天比较闲了研究了一下,发现原来的扩展包都是通过npm安装到/usr/local/lib/node_modules目录。...所以在当时,我曾经手工在/etc/paths中增加了搜索执行路径:/usr/local/lib/node_modules/bin。...当前的nodejs版本,使用npm安装的扩展包,已经默认安装到了nodejs安装目录之下。使用brew安装的话,这个路径通常是:/usr/local/Cellar/node/xx.xx.xx版本号/。...知道了原因,解决起来也简单: #删除掉早期的扩展包路径,这个文件夹实际上已经不使用了 #没有安装过早期版本的话,没有这个路径,当然不用删除 sudo rm -rf /usr/local/lib/node_modules...#自己建立一个扩展包安装路径 sudo mkdir /usr/local/npm #设置权限 sudo chown $USER:admin /usr/local/npm #让npm将扩展包安装到指定路径

    1.1K20

    Linux环境快速搭建elasticsearch6.5.4集群和Head插件

    /java/index.html,在上面选择合适的版本下载; 将下载的JDK安装文件放在目录/usr/lib/jvm,解压; 我这边JDK解压后的完整路径是/usr/lib/jvm/jdk1.8.0_191...es用户增加sudo权限 注意:以下的操作在node-0和node-1两台机器上都要做 给文件/etc/sudoers增加写权限: chmod a+w /etc/sudoers 打开文件/etc/sudoers...下载到本地的是个名为elasticsearch-head-master的文件夹,放在目录/usr/local/work/es之下; 确保文件夹的权限属于用户es,以下命令以root账号身份执行: chown.../bin/grunt -> /usr/local/work/nodejs/node-v10.15.0-linux-x64/lib/node_modules/grunt-cli/bin/grunt + grunt-cli...至此,Ubuntu16环境搭建elasticsearch6.5.4集群和head插件实战就全部完成了,希望能在您安装的时候提供一些参考。

    1.3K40

    【 Node.js 进阶】你应该知道的 NPM 知识都在这!

    如果全局安装模块报,npm 会使用符号链接把可执行文件链接到 /usr/local/bin,如果项目中安装,会链接到 ./node_modules/.bin/。...上面的这种当你的包安装到全局时:npm 会在 /usr/local/bin 下创建一个以 vm2 为名字的软链接,指向全局安装下来的 vm2 包下面的 "./bin/index.js"。...run server 命令的时候,process.argv 的具体内容为: [ '/usr/local/Cellar/node/12.14.1/bin/node', '/Users/mac/Vue-projects...调试结束后可以使用 npm unlink 取消关联 npm link 主要做了两件事: 为目标 npm 模块创建软链接,将其链接到全局 node 模块安装路径 /usr/local/lib/node_modules...为目标 npm 模块的可执行 bin 文件创建软链接,将其链接到全局 node 命令安装路径 /usr/local/bin/。

    1.5K10
    领券