npm全局安装gulp报错解决

近日使用npm全局安装gulp时出现报错

Error: ENOTSUP: operation not supported on socket, mkdir '/home/work'
    at Error (native)

1. npm报错,提示创建'/home/work'目录,我们打开npm的配置文件看一下执行 vim ~/.npmrc

registry=http://registry.npm.pt.mi.com/
prefix=/home/work/nodejs/bin

或者可以
执行 npm config list

; cli configs
user-agent = "npm/3.10.10 node/v6.10.2 darwin x64"

; userconfig /Users/litingyu/.npmrc
prefix = "/home/work/nodejs/bin"
registry = "http://registry.npm.pt.mi.com/"

; node bin location = /usr/local/bin/node
; cwd = /Users/litingyu
; HOME = /Users/litingyu
; "npm config ls -l" to show all defaults.

可以看到npm会把全局的安装包放在preifx指示的 "/home/work/nodejs/bin"目录下

2.但是我们执行sudo mkdir /home/work会发现报错

mkdir: /home/work: Operation not supported

这下了解了,原来是我们没有操作home的权限(Mac的设计初衷不让修改home目录);
PS: 我们当然可以修改home目录的操作权限来安装node_modules,但是亲测安装了之后却并不能执行gulp命令,其实这个目录'/home/work/nodejs/bin'本身是有问题的。

3.解决方案

执行 vim ~/.npmrc
改为

registry=http://registry.npm.pt.mi.com/
# prefix=/home/work/nodejs/bin
prefix=/usr/local

4. 执行

sudo npm install -g gulp
执行gulp -v 有效!

5.成功啦!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • nvm、node安装方式一 使用Homebrew 如果之前通过'brew install node'方式安装过no...
    Y了个J阅读 3,686评论 0 3
  • 1、什么是node? 它不是JS文件,也不是JS框架,而是Server side JavaScript runti...
    J_L_L阅读 1,611评论 0 4
  • gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学...
    依依玖玥阅读 3,231评论 7 55
  • 在现在的前端开发中,前后端分离、模块化开发、版本控制、文件合并与压缩、mock数据等等一些原本后端的思想开始...
    Charlot阅读 5,542评论 1 32
  • 关于八月 关于风和日丽 关于死去的庄稼 关于一封远行的信笺 关于一场迟到的暴雨 关于沉默和躁动不安 关于横尸遍野断...
    才女式微阅读 257评论 15 16