链接:https://www.zhihu.com/question/619343932/answer/3481294995
在 JavaScript 的世界中,包管理器是一个重要的工具,它帮助我们管理、安装和升级项目的依赖。在这篇文章中,我们将深入探讨三个最流行的 JavaScript 包管理器:npm、yarn 和 pnpm。
npm 是 Node.js 的默认包管理器,它随着 Node.js 一起发布。npm 有一个庞大的包注册中心,其中包含了数十万个可用的包。npm 使用 package-lock.json
文件来锁定依赖的具体版本,这有助于确保在不同的环境中,项目的依赖关系始终保持一致。
npx是一个由Node.js官方提供的用于快速执行npm包中的可执行文件
的工具。它可以帮助我们在不全局安装某些包的情况下,直接运行该包提供的命令行工具。npx 在执行时,如果发现本地项目依赖项中不存在的包,则会自行安装远程 npm 库中的包至 npm 缓存当中,运行完成后会删除
使用npx时,可以在命令行中输入要执行的包名加上其参数,例如:
npx create-react-app my-app
以上命令会在本地下载并运行create-react-app包中的可执行文件,创建一个名为my-app的React应用程序。
npx 不会像 npm 或 yarn 一样将包下载到本地的 node_modules 目录中。相反,它会在执行命令时,在本地缓存中寻找并下载包,然后执行该包中的命令。这样可以避免在开发过程中在全局安装大量的包,同时也可以确保使用的是最新版本的包。
是的,npx会在执行完命令后删除下载的包。这是因为npx会在执行命令之前,将需要执行的包下载到一个临时目录中,并在执行完毕后删除该目录。这样可以避免在本地留下不必要的依赖包。如果需要保留依赖包,可以使用--no-cleanup
选项来禁止删除下载的包。
cnpm 是 “China Node Package Manager
” 的缩写,是一个完全兼容 npm 的命令行工具,为中国大陆地区的开发者提供了一些额外的功能。
由于网络原因,中国大陆地区的开发者在直接使用 npm 安装包时可能会遇到速度慢甚至无法安装的问题。为了解决这个问题,淘宝团队创建了一个 npm 的镜像源 - 淘宝 NPM 镜像,而 cnpm 就是这个镜像源的命令行工具。
cnpm 的主要特性有:
要安装 cnpm,你可以使用 npm:
npm install -g cnpm --registry=https://registry.npm.taobao.org
然后,你就可以像使用 npm 一样使用 cnpm 了:
cnpm install [package-name]
总的来说,cnpm 是一个为中国大陆地区的开发者提供的 npm 的替代品,它提供了快速的安装速度和 npm 的完全兼容性。
yarn 是 Facebook 开发的一个 npm 的替代品,它致力于解决 npm 的一些问题。yarn 使用 yarn.lock 文件来锁定依赖的具体版本,这与 npm 非常相似。
可以通过 npm 安装 yarn:npm install -g yarn
安装完成后,可以使用 yarn 命令。
以下是一些常用的 yarn 命令:
pnpm 是一个相对较新的包管理器,它的主要目标是提高性能
和减少磁盘空间占用
。pnpm 使用 pnpm-lock.yaml
文件来锁定依赖的具体版本,这与 npm 和 yarn 非常相似。
全局安装
npm install pnpm -g
设置源
//查看源
pnpm config get registry
//切换淘宝源
pnpm config set registry https://registry.npmmirror.com/
使用
pnpm install 包 //
pnpm i 包
pnpm add 包 // -S 默认写入dependencies
pnpm add -D // -D devDependencies
pnpm add -g // 全局安装
移除
pnpm remove 包 //移除包
pnpm remove 包 --global //移除全局包
更新
pnpm up //更新所有依赖项
pnpm upgrade 包 //更新包
pnpm upgrade 包 --global //更新全局包