前端常用的包管理工具
1. 啥叫包管理工具
- 简而言之,包管理工具就是帮助我们管理项目依赖,比如我们项目开发中经常用import {xxx} from ‘vue’,vue就是我们项目所依赖的包,通过包管理工具,我们可以更便捷的实现包的引入,删除,修改等操作
- 常见的包管理工具有三个npm、yarn、npmp
2. npm(Node Package Manager)
- 它与Node.js环境紧密集成,是比较顾浩的包管理工具
# 1、创建一个新的 Node.js 应用程序或模块,并在 package.json 文件中定义依赖项。
npm init
# 2、安装依赖项。如果在安装时没有指定包的版本号,则将安装最新版本的包。
npm install
# 3、安装指定的依赖项,并将其添加到 package.json 文件中的 dependencies 中。
npm install <package name> --save
# 4、安装指定的开发依赖项,并将其添加到 package.json 文件中的 devDependencies 中。
npm install <package name> --save-dev
# 5、将包安装为全局包,以便在系统的任何位置使用它们。
npm install -g <package name>
# 6、更新 package.json 文件中指定的所有包的版本。
npm update
# 7、更新指定的包的版本。
npm update <package name>
# 8、卸载指定的依赖项,并将其从 package.json 文件中的 dependencies 或 devDependencies 中删除。
npm uninstall <package name>
# 9、查看指定的包的详细信息,包括其版本、描述、关键字、维护者等。
npm view <package name>
# 10、搜索与指定关键字匹配的包。
npm search <keywords>
# 11、清除 npm 的缓存。
npm cache clean
# 12、启动 Node.js 应用程序。
npm start
# 13、运行测试套件。
npm test
# 14、运行 package.json 文件中指定的脚本。
npm run <script name>
# 15、列出当前项目中已安装的所有包及其依赖关系。
npm ls
# 16、检查当前项目中已安装的包是否有过时的版本。
npm outdated:
# 17、查看指定包的详细信息。
npm view <package name>
# 18、查看指定包的摘要信息。
npm info <package name>
# 19、将当前目录下的代码发布为一个 npm 包。
npm publish
# 20、查看当前登录的 npm 用户名。
npm whoami
3. yarn
- 由Facebook推出的包管理工具,通过并行下载和缓存机制,提高了依赖的安装速度
3.1 yarn的安装
npm install -g yarn
3.2 yarn的基本命令
# 1、该命令将引导您创建一个新的 package.json 文件。您可以提供一些信息,例如项目名称、版本号、作者、描述等。
yarn init
# 2、该命令将安装指定的软件包并将其添加到项目依赖项中。您可以使用 @ 版本前缀来安装特定版本的软件包。例如:yarn add package@1.0.0。
yarn add [package]
# 3、该命令将从项目依赖项中删除指定的软件包。
yarn remove [package]
# 4、该命令将更新指定软件包的版本。您可以使用 @ 版本前缀来更新特定版本的软件包。例如:yarn upgrade package@1.0.0。
yarn upgrade [package]
# 5、该命令将根据项目中的 package.json 文件安装所有依赖项。如果您在运行时指定了 --production 标志,则只会安装生产依赖项。
yarn install
# 6、该命令将清除 Yarn 的缓存。这可能会释放一些磁盘空间并解决某些依赖项问题。
yarn cache clean
# 7、该命令将全局安装指定的软件包。这通常用于安装全局命令行工具。
yarn global add [package]
# 8、该命令将从全局安装中删除指定的软件包。
yarn global remove [package]
# 9、该命令将列出当前项目中的所有依赖项。
yarn list
# 10、该命令将运行项目中指定的脚本。例如:yarn run start。
yarn run [script]
# 11、该命令将运行项目中的测试脚本。
yarn test
# 12、该命令将根据项目中的配置文件构建项目。
yarn build
# 13、该命令将发布您的软件包到 Yarn 存储库中。
yarn publish
# 14、该命令将显示有关指定软件包的详细信息。
yarn info [package]
# 15、该命令将使您登录到 Yarn 存储库。
yarn login
# 16、该命令将使您从 Yarn 存储库注销。
yarn logout
# 17、该命令将允许您将本地软件包链接到项目中。
yarn link [package]
# 18、该命令将从项目中取消链接指定的软件包。
yarn unlink [package]
# 19、该命令将显示指定软件包的依赖项信息。
yarn why [package]
# 20、该命令将显示项目依赖项的许可证信息。
yarn licenses ls
4. pnpm(Permissive NPM)
- 新型的包管理工具,通过硬链接和符号链接的方式,避免包的重复安装,从而节省磁盘空间提高安装速度
4.1 pnpm的安装
npm install -g pnpm
4.2 pnpm的基本命令
# 1、用于安装项目中的所有依赖。
pnpm install
# 2、用于安装指定的依赖包,例如 pnpm install react。
pnpm install [package]
# 3、用于全局安装指定的依赖包,例如 pnpm install --global typescript。
pnpm install --global [package]
# 4、用于更新项目中的所有依赖。
pnpm update
# 5、用于更新指定的依赖包,例如 pnpm update react。
pnpm update [package]
# 6、用于删除指定的依赖包,例如 pnpm remove react。
pnpm remove [package]
# 7、用于列出当前项目中已安装的所有依赖包。
pnpm list
# 8、用于列出当前系统中已全局安装的所有依赖包。
pnpm list --global
# 9、用于列出当前项目中已安装的所有依赖包及其直接依赖项。
pnpm list --depth=1
# 10、用于查看指定依赖包的详细信息,例如 pnpm info react。
pnpm info [package]
# 11、用于将指定的依赖包添加到 devDependencies,例如 pnpm add jest --save-dev。
pnpm add [package] --save-dev
# 12、用于将指定的依赖包添加到 dependencies,例如 pnpm add react --save。
pnpm add [package] --save
# 13、用于全局安装指定的依赖包,例如 pnpm add typescript --global。
pnpm add [package] --global
# 14、用于重新构建项目中的所有依赖。
pnpm rebuild
# 15、用于运行项目中的脚本命令,例如 pnpm run start。
pnpm run [script]
# 16、用于查看本地包存储状态。
pnpm store status
# 17、用于清理本地存储的未被任何项目使用的包。
pnpm store prune
# 18、用于将指定的依赖包添加到本地存储,以便其他项目使用。
pnpm store add [package]
# 19、用于启动本地包服务器。
pnpm server
# 20、用于在所有项目中执行指定命令,例如 pnpm recursive install。
pnpm recursive [command]
5. 选哪个包管理器
- 怎么选得看你更侧重什么,如果侧重 稳定和社区支持度高,就npm
- 如果要安装速度快,和更可靠的依赖锁定,就yarn
- 如果你关注磁盘空间使用和安装速度,就用pnpm
- 我们列表对比一下
特性 |
npm |
yarn |
pnpm |
安装速度 |
一般,依赖于网络包的大小 |
快,支持并行安装 |
非常快,使用硬链接和符号链接共享依赖 |
缓存机制 |
有缓存,但依赖于网络 |
强大的缓存机制,支持离线安装 |
优秀的缓存机制,使用内容时可寻址储存来共享依赖 |
磁盘空间 |
较差,不同项目重复安装依赖 |
较好,使用缓存较少重复安装 |
优秀,使用硬链接和符号链接避免重复安装 |
锁文件 |
package-lock.json |
yarn.lock |
pnpm-lock.yaml |