npm全局安装
npm i -g xxx
yarn 全局安装
yarn global add xxx
然而你可能会发现npm
全局安装后的命令可以直接使用,而yarn
却不行,这是为什么呢?
我们来查看下npm
和yarn
的bin
目录
bin
是binary
的缩写,意思是存放二进制可执行文件的目录,比如exe,msi,cmd
等,而npm,yarn
全局安装的命令就会从这里面开始查找可执行文件。
那为什么系统会从这个路径下进行查找可执行文件呢?这就要说下环境变量
简单的说计算机在执行命令的时候是在环境变量找对应的命令的位置的。如果不正确设置环境变量就不能正确使用相应的命令。如果执行某个命令,系统无法在当前文件夹里找到对应的.exe(
可执行文件),那么系统就会去环境变量path
包含的路径找挨个找看是否能知道对应的.exe
,一旦找到第一个对应的.exe
就运行命令,其他的路径下就不找了。如果找不到你就会看到“系统找不到某某命令”的提示。
在安装node
的过程,安装进程会自动的增加node
和npm
的路径到环境变量,如下图:
所以我们使用npm
安装的全局命令,可以直接使用,无需再配置环境变量。
打开bin
目录可以发现全局安装的命令脚本或者可执行文件
注意:使用cnpm
安装的yarn
,如果要卸载,需要使用npm
卸载,cnpm
卸载不了,卸载完成,需要重启命令行工具。
但是yarn
的bin
目录路径不会添加到环境变量中,这也就是为什么yarn
全局安装后命令不能使用的原因。
因此,全局安装命令行工具库最好使用npm
或者cnpm
,不建议使用yarn
。可能有同学会说手动将yarn
的bin
目录路径添加到环境变量中不就可以了吗?但如果npm
和yarn
都安装了同一个命令行工具库,但是版本不一样,那在执行命令的时候应该去执行哪一个命令脚本呢?
或者你可以在yarn
的bin
目录执行脚本命令文件,如下:
cd C:\Users\cassmall\AppData\Local\Yarn\bin
eslint --fix --ext .ts /src
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。