文章

其他 js 包管理器

其他 js 包管理器

其他 js 包管理器

cnpm 淘宝 npm 镜像

https://npmmirror.com/

由于 npm 默认镜像源 https://registry.npmjs.org 使用的是国外的服务器,在国内通过其下载 npm 依赖时,下载速度会比较缓慢,故而就出现了淘宝源之类的镜像源,以便开发者快速下载 npm 依赖,而 cnpm 就是将最新的淘宝源作为下载源的一款工具包,cnpm 可以使用和 npm 几乎一样的命令。

注意:淘宝源是每隔一段时间,才会和 npm 默认镜像源 https://registry.npmjs.org 同步一次,同步时间一般为几分钟左右,并不是实时同步的。

什么是 cnpm?

这是一个完整 npmjs.com 镜像,你可以用此代替官方版本 (只读),我们将尽量与官方服务实时同步

安装 cnpm

由于国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像。
淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本 (只读),同步频率目前为 10 分钟 一次以保证尽量与官方服务同步。
可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

1
2
3
npm install -g cnpm --registry=https://registry.npm.taobao.org # 过时了
# // 或者
npm install -g cnpm --registry=https://registry.npmmirror.com

然后使用 cnpm install 命令来安装模块,速度就很快了。

cnpm 替换到 npm 即可

npm 配置淘宝镜像

用 npm 也可以使用淘宝镜像,配置的方式有两种:

  • 直接配置:执行如下命令即可完成配置:
1
2
3
4
# 设置 npm 默认镜像源为淘宝源
npm config set registry https://registry.npmmirror.com
# 通过下面的命令可以查看 npm 当前使用的镜像源
npm config get registry
  • 配置 alias:添加 npm 参数 alias 一个新命令
1
alias cnpm="npm --registry=https://registry.npmmirror.com --cache=$HOME/.npm/.cache/cnpm --disturl=https://npmmirror.com/mirrors/node --userconfig=$HOME/.cnpmrc"

虽然 cnpm 可以提高速度,但是 npm 也可以通过淘宝镜像进行加速,所以 npm 的使用率还是高于 cnpm

cnpm 命令

安装模块:

1
cnpm install [name]

同步模块:

1
cnpm sync cnpmcore

发布 npm 包

注意: 如果需要将项目发布到 npm 仓库中,那么需要将 npm 的镜像源重置为默认镜像源,即 https://registry.npmjs.org,否则将无法登录 npm 账户,无法发布项目到 npm 仓库。

1
2
3
4
5
6
7
8
9
# 重置 npm 镜像源
npm config set registry https://registry.npmjs.org

# 登录 npm 仓库帐号
npm login

# 发布当前项目
# 注意:package.json 中的 private 不能设置为 true,否则该项目为私有项目,不能发布到 npm 仓库
npm publish

其他 npm 镜像

  • 腾讯云镜像

https://mirrors.cloud.tencent.com/help/npm.html

pnpm

Fast, disk space efficient package manager | pnpm

pnpm 简介

使用 npm 时,依赖每次被不同的项目使用,都会重复安装一次。 而在使用 pnpm 时,依赖会被存储在内容可寻址的存储中,所以:

  1. 如果你用到了某依赖项的不同版本,只会将不同版本间有差异的文件添加到仓库。例如,如果某个包有 100 个文件,而它的新版本只改变了其中 1 个文件。那么 pnpm update 时只会向存储中心额外添加 1 个新文件,而不会因为仅仅一个文件的改变复制整新版本包的内容。
  2. 所有文件都会存储在硬盘上的某一位置。当软件包被被安装时,包里的文件会硬链接到这一位置,而不会占用额外的磁盘空间。这允许你跨项目地共享同一版本的依赖。 因此,您在磁盘上节省了大量空间,这与项目和依赖项的数量成正比,并且安装速度要快得多

相对 npm 优势 2 点:

  • 节省磁盘空间
  • 提高安装速度

pnpm 安装

https://pnpm.io/zh/installation

1
npm install -g pnpm

pnpm 常用命令

pnpm add

安装软件包及其依赖的任何软件包。默认情况下,任何新软件包都安装为 生产依赖项

命令说明
pnpm add sax保存到 dependencies
pnpm add -D sax保存到 devDependencies
pnpm add -O sax保存到 optionalDependencies
pnpm add -g saxInstall package globally
pnpm add sax@next从 next 标签下安装
pnpm add sax@3.0.0安装指定版本 3.0.0

pnpm install

用于安装项目所有依赖,别名: i

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, unnode_modules 和项目的 package.json 中删除相关 packages

pnpm list

此命令会以一个树形结构输出所有的已安装 package 的版本及其依赖。如果位置参数是 name-pattern@version-range 标识符,会将输出限制为仅为这样命名的包。例如,pnpm list "babel-*" "eslint-*" semver@5

pnpm config

管理配置文件

1
2
3
4
5
6
7
8
9
10
pnpm config list

# 查看当前镜像源
pnpm config get registry

# 设置全局镜像源
pnpm config set registry https://registry.npmmirror.com

# 设置项目临时镜像源
npm install --registry https://registry.npmmirror.com

常用镜像列表:

pnpm 和 npm 相比

  1. 体验优良,依赖安装速度极快,占用磁盘空间小。
  2. 上手简单,绝大部分 npm / yarn 项目可以低成本完成迁移,官方也有较详尽的中文文档。
  3. pnpm 组织 node_modules 目录的方式兼容原生 Node,与打包工具配合良好,可以放心应用于生产环境。
  4. pnpm 依赖访问虽然严格,但是规则清晰,界限分明后,不再如以前一样容易出现依赖冲突,反而降低了使用时的心智负担,纠正了我之前的一些错误认知。

其他 js 包管理器

yarn

yarn 简介

yarn 是由 Facebook 在 2016 年推出的新的 Javascript 包管理工具,官方网址:https://yarnpkg.com/

yarn 特点:

  • 速度超快:yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。同时利用并行下载以最大化资源利用率,因此安装速度更快。
  • 超级安全:在执行代码之前,yarn 会通过算法校验每个安装包的完整性
  • 超级可靠:使用详细、简洁的锁文件格式和明确的安装算法,yarn 能够保证在不同系统上无差异的工作

yarn 安装

1
2
npm install --global yarn
yarn --version

yarn 使用

  • yarn 是用 yarn add 代替 npm install
  • yarn remove 代替 npm uninstall

安装依赖模块:

1
2
3
yarn add [package]
yarn add [package]@[version]
yarn add [package]@[tag]

删除依赖模块:

1
yarn remove [package]

更新依赖模块:

1
2
3
yarn upgrade [package]
yarn upgrade [package]@[version]
yarn upgrade [package]@[tag]

配置源:

1
2
3
4
5
6
7
8
# 查看镜像源
yarn config get registry

# 绑定镜像源
yarn config set registry https://registry.npmmirror.com

# 删除镜像源(注意这里是 delete)
yarn config delete registry

nvm

nvm 全称 Node Version Manager 顾名思义它是用来管理 Node 版本的工具,方便切换不同版本的 Node.js。

nvm 的使用非常的简单,跟 npm 的使用方法类似。

下载地址 https://github.com/coreybutler/nvm-windows/releases

常用命令:

命令说明
nvm list available显示所有可以下载的 Node.js 版本
nvm list显示已安装的版本
nvm install 18.12.1安装 18.12.1 版本的 Node.js
nvm install latest安装最新版的 Node.js
nvm uninstall 18.12.1删除某个版本的 Node.js
nvm use 18.12.1切换 18.12.1 的 Node.js
本文由作者按照 CC BY 4.0 进行授权