先说结论
pnpm
pnpm
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
npm从5.25.2版开始,增加了 npx 命令
npm干嘛的?
如果你使用的npm小鱼5.25.2,需要手动安装
npm install -g npx
使用npm安装包时,需要去npm仓库获取,而npm仓库在国外,很不稳定,有时获取会失败。
为了解决这个问题,淘宝搭建了一个国内npm服务器,会定时拉取国外npm仓库内容,就是把国外的搬运到国内
这是一个完整
npmjs.org
镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。
第一种方法:安装cnpm,之后下载仓库内容时使用cnpm
命令即可
npm install -g cnpm --registry=https://registry.npmmirror.com
第二种方法:替换npm默认仓库地址,执行下面命令,后续下载仓库内容时,继续使用npm
命令
npm config set registry https://registry.npmmirror.com
安装模块
cnpm install [name]
npm
改为cnpm
即可npm install --global yarn
检查安装版本
yarn --version
yarn add
代替 npm install
yarn remove
代替 npm uninstall
官网Docs
安装依赖模块
yarn add [package]
yarn add [package]@[version]
yarn add [package]@[tag]
删除依赖模块
yarn remove [package]
更新依赖模块
yarn upgrade [package]
yarn upgrade [package]@[version]
yarn upgrade [package]@[tag]
配置源
# 查看镜像源
yarn config get registry
# 绑定镜像源
yarn config set registry https://registry.npmmirror.com
# 删除镜像源(注意这里是 delete)
yarn config delete registry
使用 npm 时,依赖每次被不同的项目使用,都会重复安装一次。 而在使用 pnpm 时,依赖会被存储在内容可寻址的存储中,所以:
pnpm update
时只会向存储中心额外添加1个新文件,而不会因为仅仅一个文件的改变复制整新版本包的内容。因此,您在磁盘上节省了大量空间,这与项目和依赖项的数量成正比,并且安装速度要快得多!
相对npm优势2点
**重点:**关于pnpm介绍大家可以参照官网的说明,在这里就不赘述
Windows:打开PowerShell窗口,执行下面命令,注意是PowerShell窗口
iwr https://get.pnpm.io/install.ps1 -useb | iex
**备注:**安装时容易挂,因为需要去github上下载包,github国内访问很不稳定,推荐第二种安装方式
直接使用npm 安装
npm install -g pnpm
C:\Users\coder>npm install -g pnpm
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
added 1 package, and audited 3 packages in 5s
found 0 vulnerabilities
列举几个常用命令,其他命令大家参考上面的官网链接
pnpm add
安装软件包及其依赖的任何软件包。默认情况下,任何新软件包都安装为生产依赖项。
命令 | 说明 |
---|---|
pnpm add sax | 保存到 dependencies |
pnpm add -D sax | 保存到 devDependencies |
pnpm add -O sax | 保存到 optionalDependencies |
pnpm add -g sax | Install package globally |
pnpm add sax@next | 从 next 标签下安装 |
pnpm add sax@3.0.0 | 安装指定版本 3.0.0 |
pnpm install
pnpm install
用于安装项目所有依赖.
i
pnpm update
pnpm update
根据指定的范围更新软件包的最新版本。 在不带参数的情况下使用时,将更新所有依赖关系。
命令 | 说明 |
---|---|
pnpm up | 遵循 package.json 指定的范围更新所有的依赖项 |
pnpm up --latest | 更新所有依赖项,此操作会忽略 package.json 指定的范围 |
pnpm up foo@2 | 将 foo 更新到 v2 上的最新版本 |
pnpm up "@babel/*" | 更新 @babel 范围内的所有依赖项 |
pnpm remove
别名:
rm
,uninstall
,un
从node_modules
和项目的package.json
中删除相关packages
。
pnpm list
此命令会以一个树形结构输出所有的已安装
package
的版本及其依赖。 如果位置参数是name-pattern@version-range
标识符,会将输出限制为仅为这样命名的包。例如,pnpm list "babel-*" "eslint-*" semver@5
。
pnpm config
管理配置文件
pnpm config list
查看当前镜像源
pnpm config get registry
设置全局镜像源
pnpm config set registry https://registry.npmmirror.com
设置项目临时镜像源
npm install --registry https://registry.npmmirror.com
分类 | 地址 |
---|---|
npm官方 | https://registry.npmjs.org/ |
yarn官方 | https://registry.yarnpkg.com |
淘宝 | https://registry.npmmirror.com |
END