2024-09-30 yarn和npm区别

2024-09-29  本文已影响0人  我是小胡胡123

npm本地安装和全局安装

特性 npm install(本地安装) npm install -g(全局安装)
安装位置 当前项目的 node_modules 目录 系统的全局 node_modules 目录
使用方式 在项目内使用(或通过 npx 执行命令) 可以在全局范围内的任何地方使用
是否记录依赖 记录在项目的 package.json 中 不记录在项目中,影响全局环境
典型用途 项目依赖库、工具或框架 全局命令行工具、常用开发工具

全局安装位置,安装的位置 通过命令来查看:

npm root -g
/Users/a58/.nvm/versions/node/v14.21.3/lib/node_modules
which vuepress
/Users/a58/.nvm/versions/node/v14.21.3/bin/vuepress

/Users/a58/.nvm/versions/node/v14.21.3/lib/node_modules

npm 全局安装的pacakge包在对应node版本node_modules目录下

yarn 本地安装和全局安装

特性 yarn add(本地安装) yarn global add(全局安装)
安装位置 当前项目的 node_modules 目录 系统的全局 node_modules 目录
使用方式 在项目内使用(或通过 npx /yarn run 执行命令) 可以在全局范围内的任何地方使用
依赖记录 记录在项目的 package.json 中 不记录在项目中,全局可用
典型用途 项目依赖库、工具、框架等 全局命令行工具、常用开发工具

全局安装位置,安装的位置 通过命令来查看:

yarn global dir 
/Users/a58/.config/yarn/global

yarn global bin 
/usr/local/bin

/Users/a58/.config/yarn/global:


image.png

yarn全局安装的bin虽然这里打印出是在/usr/local/bin
但其实这里是快捷方式,对应的是
/Users/a58/.config/yarn/global/node_modules/.bin/中的bin


 ls -l /usr/local/bin/babel
lrwxr-xr-x  1 a58  staff  62 Sep  3 20:00 /usr/local/bin/babel -> 
../../../Users/a58/.config/yarn/global/node_modules/.bin/babel

结论:

安装工具不同:

npm install -g 安装的全局包会放在 nvm 管理的 Node.js 目录下,
即 /Users/a58/.nvm/versions/node/v14.21.3/lib/node_modules。

yarn global add 安装的全局包会放在 yarn 自己的全局目录下,即 /Users/a58/.config/yarn/global/node_modules。

管理方式不同:

nvm 管理的 npm 全局包路径跟随你使用的 Node.js 版本。如果你切换 Node.js 版本,nvm 可能会导致全局包路径变化。

yarn 使用独立的目录来管理全局包,与 Node.js 版本无关,即使你切换 Node.js 版本,yarn 的全局包仍然会在相同的目录下。

上一篇 下一篇

猜你喜欢

热点阅读