问题起因:
Npm 和 Yarn 混用后导致全局依赖的混乱。yarn global add umi 后成功,但是却无法使用,而 npm 安装的能正常使用。
起初以为是全局变量的问题,将 yarn global bin 的路径添加到 .bash_profile 后仍然无法使用。
后来发现问题的原因是: yarn global bin 默认的指向是在 node 下的,yarn 安装依赖后可执行的命令也都是在这个目录下,但是这个目录 npm 能访问,但是 yarn 却不能。
解决方法:
知道问题所在后,我们需要修改一下 yarn global bin 的位置,将它制定到我们有权限访问的地方,我放的是当前用户的目录下的一个 .yarn 隐藏文件:
yarn config set prefix ~/.yarn
设置完成我们在看看
yarn global bin
现在能看到我们设置的位置 /Users/noko/.yarn/bin,当然 yarn global add xxx 时,xxx 还是运行不了的,这是因为我们还没修改环境变量。
sudo vim ~/.bash_profile
在文件里添加下面这一句,因为这个 PATH 是动态指向 yarn global bin 的,这样以后在修改 yarn global bin 也不用修改环境变量了。
export PATH=”$PATH:
yarn global bin
“
现在更新一下配置文件,输入命令或者重新打开终端都可以
source ~/.bash_profile