使用 pnpm 替代 yarn, npm

pnpm 的优势不用多说, 懂得自然了解了, 不懂的去官网看下他们的介绍 项目初衷 | pnpm 这里主要的目的是使用 pnpm 替换掉 yarn 和 npm

  • npm 是 node 的包管理工具, 所以我的理解是 node 是基础, 需要 npm 必须要有 node
  • yarn 作为 npm 的一个包, 必须要有 npm , 才能够使用 yarn
  • 然而 node 的版本也可以支持切换, 这样再切换 node 的时候则需要使用到 nvm , 而 nvm 是依赖于 npm 和 yarn 的.

这样造成的依赖循环逃脱不了轮回, 就会导致东西关联较多
在我了解了 pnpm 之后他可以很好的解决以上问题并且还有它自己独到的优势

  • 纯净安装, 依托于 brew
  • 可以管理全局 node , 并支持自动安装
  • 包管理使用软链接方式, 不必在多项目之间重复下载占用磁盘空间

所以就打算用他替换掉 nvm, yarn, npm 这些工具, 仅仅使用一个即可

阅读更多

Node 更换源使用国内镜像

Npm

TaoNpm 的更新流程示意图:

为什么要换源? npm 官方站点 http://www.npmjs.org/ 并没有被拦截,但是下载第三方依赖包的速度由于和外网联通的限制, 速度不能满足实际的使用需求.为了加速访问, 我们可以使用镜像来进行访问
国内有几个镜像站点可以供我们使用

速度非常快,镜像站会实时更新,为我们节省了好多时间.

临时更换访问源

通过 config 配置指向国内镜像源

1
2
$ npm config set registry https://registry.npmmirror.com
$ npm info express

通过 npm 命令指定下载源

1
2
# 在安装时候临时指定
$ npm --registry https://registry.npmmirror.com info express

永久更换访问源

使用 **nrm** 来更换访问源
nrm 是 NPM Registry Manager 的缩写, 通过他可以快速切换源, 文档地址 : https://www.npmjs.com/package/nrm

1
2
$ npm install -g nrm
$ yarn global add nrm
1
2
3
4
5
6
7
8
9
10
# list all
$ nrm ls
* npm ---------- https://registry.npmjs.org/
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.cloud.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
taobao ------- https://registry.npmmirror.com/
npmMirror ---- https://skimdb.npmjs.com/registry/
# 替换使用
$ nrm use taobao

[linux]在配置文件 **~/.npmrc** 文件写入源地址

1
2
3
4
# 打开配置文件
$ vim ~/.npmrc
# 写入配置文件
registry=https://registry.npmmirror.com/

如果你不想使用国内镜像站点,只需要将 写入 ~/.npmrc 的配置内容删除即可.
下面是我本地下载 ejs 包的截图,可以看到默认源地址指向了 cnpm

使用 cnpm 来替代 npm

使用说明查看 : https://npmmirror.com
cnpm 支持所有 npm 的命令并且可以快速同步任意模块

1
$ cnpm sync koa connect mocha

如果不想安装 cnpm cli 怎么办? 我们还有一个 web 页面:
例如我想马上同步 koa, 直接打开浏览器: http://npmmirror.com/sync/koa
或者你是命令行控, 通过 open 命令打开:

1
open http://npmmirror.com/sync/koa

如果你安装的模块依赖了 C++ 模块, 需要编译, 肯定会通过 node-gyp 来编译, node-gyp 在第一次编译的时候, 需要依赖 node 源代码, 于是又会去 node dist 下载, 于是大家又会吐槽, 怎么 npm 安装这么慢…
好吧, 于是又要提到 --disturl参数, 通过中国镜像来下载:

1
2
3
$ npm install microtime \
--registry=http://registry.npmmirror.com \
--disturl=https://npmmirror.com/mirrors/node

再次要提到 cnpm cli, 它已经默认将 --registry--disturl 都配置好了, 谁用谁知道 . 写到这里, 就更快疑惑那些不想安装 cnpm cli 又吐槽 npm 慢的同学是基于什么考虑不在本地安装一个 cnpm 呢?
nodejs 源码路径
对于在淘宝上下载 nodejs 源码指定的地址是: [https://npmmirror.com/dist](https://npmmirror.com/dist)
直接更改源文件中的配置文件地址来更改加载路径
~/node_modules/npm/lib/config/defaults.js
Line : 181
registry : "https://registry.npmjs.org/"
将这个注册地址 更改为: [https://registry.npmmirror.com/](https://registry.npmmirror.com/)

Yarn

执行 yarn 各种命令的时候,默认是去 npm/yarn 官方镜像源获取需要安装的具体软件信息
以下命令查看当前使用的镜像源

1
yarn config get registry

默认源地址在国外,从国内访问的速度肯定比较慢

阿里旗下维护着一个完整的 npm 镜像源 https://npmmirror.com/ 同样适用于 yarn

临时修改

1
yarn save 软件名 --registry https://npmmirror.com/

全局修改

1
yarn config set registry https://npmmirror.com/

使用第三方软件快速修改、切换 yarn 镜像源

YARN registry manager:
https://github.com/i5ting/yrm
yrm 不仅可以快速切换镜像源,还可以测试自己网络访问不同源的速度
安装 yrm

1
npm install -g yrm

列出当前可用的所有镜像源

1
2
3
4
5
6
7
8
$ yrm ls
npm ----- https://registry.npmjs.org/
cnpm ---- http://r.cnpmjs.org/
taobao -- https://registry.npm.taobao.org/
nj ------ https://registry.nodejitsu.com/
rednpm -- http://registry.mirror.cqupt.edu.cn
skimdb -- https://skimdb.npmjs.com/registry
yarn ---- https://registry.yarnpkg.com

使用淘宝镜像源

1
yrm use taobao

测试访问速度

1
2
3
4
5
6
7
$ yrm test
npm ------ 1174ms
yarn ----- 1787ms
tencent -- 1284ms
cnpm ----- 2970ms
* taobao --- 133ms
npmMirror - 886ms

更多用法查看 yrm GitHub

Nodejs Release 镜像使用帮助

Nodejs Release 为各平台提供预编译的 nodejs 和 npm 等二进制文件,是 https://nodejs.org/dist/ 的镜像。
使用方法:

1
2
# 设定环境变量
export NODE_MIRROR=http://npmmirror.com/mirrors/node

参考网站:

  • 快速搭建 Node.js / io.js 开发环境以及加速 npm
  • 给电脑换源 npm 国内镜像 cnpm

更新说明

2021 年 10 月 27 日


原文地址 : Node 更换源使用国内镜像
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

[转] NPM 版本控制

原地址 : NPM 版本控制

优秀链接:

NPM版本计算器

为了在软件版本号中包含更多意义,反映代码所做的修改,产生了语义化版本,软件的使用者能从版本号中推测软件做的修改。npm 包使用语义化版控制,我们可安装一定版本范围的 npm 包,npm 会选择和你指定的版本相匹配(latest)最新版本安装。
npm 的版本号由三部分组成:
主版本号次版本号补丁版本号。变更不同的版本号,代表不同的意义:

  • 主版本号(major):软件做了不兼容的变更(breaking change 重大变更);
  • 次版本号(minor):添加功能或者废弃功能,向下兼容;
  • 补丁版本号(patch):bug 修复,向下兼容。

有时候为了表达更加确切的版本,还会在版本号后面添加标签或者扩展,来说明是预发布版本或者测试版本等。比如 3.2.3-beta-3

常见的标签有 :

标签 意义 补充
demo demo版本 可能用于验证问题的版本
dev 开发版 开发阶段用的,bug 多,体积较大等特点,功能不完善
alpha α版本 用于内部交流或者测试人员测试,bug较多
beta 测试版(β版本) 较α版本,有较大的改进,但是还是有bug
gamma (γ)伽马版本 较α和β版本有很大的改进,与稳定版相差无几,用户可使用
trial 试用版本 本软件通常都有时间限制,过期之后用户如果希望继续使用,一般得交纳一定的费用进行注册或购买。有些试用版软件还在功能上做了一定的限制。
stable 稳定版
csp 内容安全版本 js库常用
latest 最新版本 不指定版本和标签,npm 默认安最新版

更多关于标签的内容

查看标签:

阅读更多