包管理器npm/cnpm/yarn/pnpm
npm#
概念: npm 是 Node.js 的包管理工具,用来安装各种 Node.js 的扩展。
它于 2010 年发布,开启了 web 开发的新时代。在此之前,项目依赖库都是手动下载和管理的,npm 是把 WEB 开发推向了一个更高的阶段。
npm 是 JavaScript 的包管理工具,也是世界上最大的软件注册表。有超过 60 万个 JavaScript 代码包可供下载,每周下载约 30 亿次。npm 让 JavaScript 开发人员可以轻松地使用其他开发人员共享的代码。(转自openchina)
npm 主要做三件事:
-
一个用于管理 npm 体验各个方面的网站
-
用于访问广泛的 JavaScript 包公共数据库的注册表
-
用于通过终端与 npm 交互的命令行界面(CLI)
安装:下载
Node安装的同时会默认安装npmNode安装方式一, 通过官网https://nodejs.org下载安装方式二: 通过Node版本管理工具
nvm安装
Node中文文档: https://www.nodeapp.cn/
npm中文文档: https://www.npmjs.cn/
菜鸟教程:https://www.runoob.com/nodejs/nodejs-npm.html
设置淘宝镜像: npm config set registry https://registry.npm.taobao.org
检查镜像地址: npm config get registry
常用命令:
| 命令 | 说明 |
|---|---|
npm -v |
输出版本号,一般用于检查是否安装成功 |
npm init |
初始化管理文件, 自己输入 |
npm init -y |
初始化管理文件, 使用默认值 |
npm i |
安装项目的全部依赖包,package.json文件中记录的 |
npm i express |
i表示install,下载包,加上@可指定版本,默认下载最新版 |
npm i express -g |
-g 全局安装express框架 |
npm list -g |
输出全局安装的所有包以及版本信息 |
npm uninstall express |
卸载express框架 |
npm ls |
查看node_modules文件夹中安装的所有包 |
npm search express |
搜索express框架 |
npm update express |
更新包 |
npm publish |
发布包 |
版本号#
使用 NPM 下载和发布代码时都会接触到版本号。NPM 使用语义版本号来管理代码,这里简单介绍一下。语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新。
-
如果只是修复bug,需要更新Z位。
-
如果是新增了功能,但是向下兼容,需要更新Y位。
-
如果有大变动,向下不兼容,需要更新X位。
帮助#
-
npm查看全部命令 -
npm <command> -h查看命令基本用法 -
npm help <command>在浏览器中查看命令完整用法 -
npm help npm查看npm的完整说明文档
npx#
介绍: npx 是 npm5.2.0版本新增的一个工具包,定义为npm包的执行者,相比 npm,npx 会自动安装依赖包并执行某个命令。
eg: 用 create-react-app 脚手架创建一个 react 项目
1 | // 第一步 |
1 | // 使用npx一步到位 |
npx 会在当前目录下的./node_modules/.bin里去查找是否有可执行的命令,没有找到的话再从全局里查找是否有安装对应的模块,全局也没有的话就会自动下载对应的模块,如上面的 create-react-app,npx 会将 create-react-app 下载到一个临时目录,用完即删,不会占用本地资源。
npm自带npx,可以直接使用,如果没有可以手动安装一下:
npm i -g npx
nvm#
官方介绍: nvm allows you to quickly install and use different versions of node via the command line.
翻译过来就是: nvm允许您通过命令行快速安装和使用不同版本的Node。
1 | # 使用样例 |
安装:
1 | curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash |
1 | wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash |
window安装: https://github.com/coreybutler/nvm-windows/releases
推荐下载: nvm-setup.exe
使用:
1 | nvm install 8.11.1 #下载8.11.1 |
1 | 查看下载的所有node版本, 并标出当前使用的版本 |
nrm#
介绍: 管理镜像源
有些功能淘宝镜像不可用, 需切换官方镜像
安装:
1 | npm i nrm -g |
使用:
-
切换官方镜像:
nrm use npm -
切换淘宝镜像:
nrm use taobao -
查看所有可用源
nrm ls -
测试延迟:
nrm test npm
npkill#
介绍: 快速删除node_modules文件夹, 重装依赖
使用方式一:
-
全局安装:
npm i -g npkill -
npkill选择要删除的node_modules文件夹, 按空格删除
使用方式二: npx npkill 选择要删除的node_modules文件夹, 按空格删除
cnpm#
-
安装并设置镜像:
npm install -g cnpm --registry=https://registry.npm.taobao.org -
使用:
cnpm install express
yarn#
介绍: yarn 包管理器是 npm 的一个替代方案,由 Facebook 于 2016 年 10 月发布。yarn 最初的目标是处理 npm 的缺点,比如性能和安全问题。yarn 很快被定位为一个安全、快速、可靠的 JavaScript 依赖管理工具。
特点
-
离线模式:如果您之前下载了软件包,则可以在没有任何互联网连接的情况下安装。
-
确定性:无论安装顺序如何,相同的依赖关系将以相同的方式安装在计算机上。
-
网络性能:Yarn 有效地将请求排序,避免请求堆积,以最大限度地提高网络利用率。
-
多个注册表:无论从 npm 或 Bower 安装任何包,能保持包工作流程相同。
-
网络恢复:单个请求失败不会导致安装失败。 请求在失败时会自动重试。
-
平面模式:将不兼容版本的依赖项解析为单个版本,以避免创建重复项。
安装: npm install -g yarn
使用:
-
npm install | yarn:安装依赖 -
npm install [package] | yarn add [package]:安装一个包 -
npm install --save-dev [package] | yarn add --dev [package]:安装包作为开发依赖项 -
npm uninstall [package] | yarn remove [package]:卸载一个包 -
npm uninstall --save-dev [package] | yarn remove [package]:卸载开发依赖包 -
npm update | yarn upgrade:更新的依赖关系 -
npm update [package] | yarn upgrade [package]:更新包
pnpm#
介绍: pnpm代表performant npm(高性能的npm),同npm和Yarn,都属于Javascript包管理安装工具,它较npm和Yarn在性能上得到很大提升,被称为快速的,节省磁盘空间的包管理工具。
当使用
npm或Yarn时,如果你有 100 个项目使用了某个依赖(dependency),就会有 100 份该依赖的副本保存在硬盘上,而在使用pnpm时,依赖会被存储在内容可寻址的存储中,所以:
- 如果你用到了某依赖项的不同版本,只会将不同版本间有差异的文件添加到仓库。 例如,如果某个包有100个文件,而它的新版本只改变了其中1个文件。那么
pnpm update时只会向存储中心额外添加1个新文件,而不会因为仅仅一个文件的改变复制整新版本包的内容。- 所有文件都会存储在硬盘上的某一位置。 当软件包被安装时,包里的文件会硬链接到这一位置上对应的文件,而不会占用额外的磁盘空间。 这允许你跨项目地共享同一版本的依赖。
因此,您在磁盘上节省了大量空间,这与项目和依赖项的数量成正比,并且安装速度要快得多!
安装#
-
直接powershell安装:
iwr https://get.pnpm.io/install.ps1 -useb | iex -
通过npm安装:
npm install -g pnpm
使用#
-
安装项目全部依赖:
pnpm i -
添加包:
pnpm add express







