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:
![](https://img.haomeiwen.com/i45726/aabd17a30f5f0307.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 的全局包仍然会在相同的目录下。
网友评论