基本问题
当我们在苹果电脑上尝试运行一个命令时,有时候会出现下面的情况 zsh: command not found: vue 为什么呢?我们明明已经安装了这个软件了呀,为什么却找不到命令呢 原因时macOS对你命令解析的时候经历了一个过程 下面我们就进行分析
基本环境
电脑系统版本:macOS Big Sur 11.1 npm版本: 6.14.9 node版本:v14.15.3
执行过程
首先执行了npm install yarn -g
,来安装yarn,安装成功后,yarn 的版本号1.22.10 然后我们想安装vue-cli进行vue项目的初始化yarn global add @vue/cli
显示安装成功,但是运行vue create helloworld
,却报错zsh: command not found: vue
原因分析
在macOS系统执行命令时,首先会找到系统变量里去寻找你执行到命令是否已经安装,我们可以通过echo $PATH
找到他去哪些目录去寻找 可以在**/etc/paths**里面找到他设置到路径,具体为(/usr/local/bin /usr/bin /bin /usr/sbin /sbin) 我们安装到npm
,yarn
在哪里呢,如下 通过which命令可以找到(一些基础到命令可以看我linux的基本命令文章)
zgsouth@ZGdeMacBook-Air sbin % which npm
/usr/local/bin/npm
但是我们通过yarn
命令安装包是存放在 .yarn/bin
中,我们可以通过执行命令ls
来看到,如下
zgsouth@ZGdeMacBook-Air bin % ls ~/.yarn/bin
nrm vue
解决方法
知道原因是因为,执行命令找不到,所以我们需要把我们安装包到位置告诉系统,你可能修改/etc/path
到内容,但是系统是不允许的,其实我们是可以通过修改.bash_profile
或者.zshrc
的方式来解决的(推荐后者) 第一步:执行命令;cd ~/.yarn/bin
和pwd
,复制pwd命令输出的结果 第二步:执行命令vim ~/.bash_profile
或者vim ~/.zshrc
(建议执行后一个命令) 第三步:i
,在文件的最后一行加入我们的命令位置export PATH=$PATH:刚刚复制的结果
第四步:esc->:wq
第五步:source ~/.bash_profile 或者source ~/.zshrc
第六步:vue -V 可以正常输出了