yarn & npm
# node升级
1、window系统升级node就只有到node官网下载window安装包来覆盖之前的node
2、mac升级node版本 npm i -g n n 12.9.1 //指定版本升级 n latest //安装最新版本 n stable //安装最稳定的版本
强烈推荐使用 nvm
nvm常用命令
命令 说明
nvm list nrm ls 查看已经安装的版本
nvm list installed 查看已经安装的版本
nvm list available 查看网络可以安装的版本
nvm arch 查看当前系统的位数和当前nodejs的位数
nvm install [arch] 安装制定版本的node 并且可以指定平台 version 版本号 arch 平台
nvm on 打开nodejs版本控制 (在第一次使用nvm安装node后,要记得使用 nvm use 切换下node版本,以及用 nvm on 打开nodejs版本控制,不然这时候node和npm也都不可用。)
nvm off 关闭nodejs版本控制
nvm proxy [url] 查看和设置代理
nvm node_mirror [url] 设置或者查看setting.txt中的node_mirror,如果不设置的默认是 https://nodejs.org/dist/
nvm npm_mirror [url] 设置或者查看setting.txt中的npm_mirror,如果不设置的话默认的是:https://github.com/npm/npm/archive/.
nvm uninstall 卸载制定的版本
nvm use [version] [arch] 切换制定的node版本和位数
nvm root [path] 设置和查看root路径
nvm version 查看当前的版本
# 升级包
方式1
npm install -g npm-check //安装全局的包
npm update <name> -g //全部安装不建议用
npm update <name> //单个安装
2
3
方式2
yarn global add npm-check-updates //安装全局的包
//ncu 查看所有可以安装的包
sudo ncu -u <name> //这个只是改变package里面的版本 不会更新包
//所以要sudo ncu -u <name> && sudo yarn
2
3
4
5
方式3推荐
yarn upgrade-interactive --latest //需要手动选择升级的依赖包,按空格键选择,a 键切换所有,i 键反选选择
方式4
yarn upgrade react --latest //yarn upgrade 更新依赖包时yarn.lock更新但package.json不同步更新版本信息,网上说会同步更新,我试了下,未更新,具体看你们
# 切换源
# yarn 切换源
1、查看一下当前源
yarn config get registry
2、切换为淘宝源
yarn config set registry https://registry.npm.taobao.org
3、或者切换为自带的
yarn config set registry https://registry.yarnpkg.com
# npm 切换源
1、全局配置切换到淘宝源
npm config set registry https://registry.npm.taobao.org
2、检测是否切换到了淘宝源
npm info underscore
# 淘宝 NPM 镜像站切换新域名
淘宝为了提供更稳定、更安全、更符合国家法律法规要求的镜像服务(说人话就是怕国家找茬所以要低调), 将要更换淘宝npm源的服务器,并且老的域名 npm.taobao.org 和 registry.npm.taobao.org 将不再使用。
2022年5月31日0时,这两个老域名将会停止服务,截至目前,通过老域名安装npm包已经会被301到新域名 registry.npmmirror.com
Web 站点:https://npmmirror.com (opens new window)
Registry Endpoint:https://registry.npmmirror.com (opens new window)
可能受到的影响和处理方式
- 企业用户需要联系 网管/IT/SRE 更新防火墙白名单。
- cnpm 自身的 CLI,我们会对每个大版本都发个 patch 去更新,开发者重新安装即可。
- nrm 等工具,需要提 PR 去更新内置的域名。
- 一些开发者自己封装的工具,如 egg-init,需要维护者自行提 PR 去更新。
- 存量应用的 lock 文件,开发者需要自行执行 sed 等指令去替换或重新生成。
- 本地 npmrc 里面的 registry 地址,(如果有,则)需要开发者自行更新。
- 平台应用里面写死的,需开发者自己更新并部署。
# 你必须知道的yarn
yarn的起源 (opens new window)已经解释了为什么要创建一个新的javascript包管理器, 这里笔者也推荐大家从npm切换为yarn。npm4就不说了,速度太慢了,npm5借鉴了很多yarn的机制,比如简单的版本锁、重写cache模块等,减少了与yarn的差距。 但依然有些地方做的不如yarn,这篇文章 (opens new window)记录了npm5和yarn的实验对比,结论是:在没有缓存时,yarn和npm5速度差不多;在有缓存时,yarn比npm5快2倍。
# yarn优势
以下针对npm5前:
yarn 离线安装。
下载的时候 Yarn 缓存了所有的包以至于不需要再次从网络下载yarn并行下载,使得时间更快。
通过并行操作最大限度地提高资源利用率,以至于再次下载的时候安装时间比之前更快。npm5之前是等上一个安装完后再执行下一个,串行下载。yarn锁包yarn-lock,保证引用包正确。
yarn.lock 文件准确的锁定了所有被下载和项目依赖的包版本。通过这个文件,你能确定你的工程师团队的每一位成员都能安装准确的包,并且可以更容易的部署,而没有意外 bug出现。
# yarn指令
* `yarn bin`, 打印出执行脚本的位置,可以被yarn run执行。相当于npm bin
* `yarn login/yarn publish` npm登录和发布。相当于npm login/npm publish
* `yarn cache clean`,清除缓存,相当于npm cache clean。
* `yarn list` 列出当前所有依赖的包
* `yarn config list` 显示所有配置设置
2
3
4
5
# npm 发布包
# 发布
npm publish
很多软件在正式发布前都会发布一些预览版或者测试版,一般都叫“beta版”或者 “rc版”,特别是开源软件,甚至有“alpha版”,下面来解释一下各个版本的意思。
alpha版:内部测试版。α是希腊字母的第一个,表示最早的版本,一般用户不要下载这个版本,这个版本包含很多BUG,功能也不全,主要是给开发人员和 测试人员测试和找BUG用的。
beta版:公开测试版。β是希腊字母的第二个,顾名思义,这个版本比alpha版发布得晚一些,主要是给“部落”用户和忠实用户测试用的,该版本任然存 在很多BUG,但是相对alpha版要稳定一些。这个阶段版本的软件还会不断增加新功能。如果你是发烧友,可以下载这个版本。
rc版:全写:Release Candidate(候选版本),该版本又较beta版更进一步了,该版本功能不再增加,和最终发布版功能一样。这个版本有点像最终发行版之前的一个类似 预览版,这个的发布就标明离最终发行版不远了。作为普通用户,如果你很急着用这个软件的话,也可以下载这个版本。
stable版:稳定版。在开源软件中,都有stable版,这个就是开源软件的最终发行版,用户可以放心大胆的用了。
# 发布组织包
类似于 @/babel/core ...
现在npm 下申请一个组织名字,然后执行 npm init --scope=@起好的名字,现在就可以执行 npm publish 发布了
# 删除npm包
npm unpublish --force // 强制删除
npm unpublish irdd@1.0.6 // 指定版本号
2
# npm废弃包
npm包发布后可以对包进行废弃或删除操作,废弃和删除的区别在于:
- 废弃不会将包或版本从npm仓库删除,仍然可以继续下载安装,并在安装的时候会有警示
- 删除会将包从npm彻底删除,无法被下载安装
单个废弃 npm deprecate irdd@0.6.38 'critical bug in commonjs package'
整个废弃 npm deprecate irdd 'This package has been deprecated in favour of irdd'
# 参考文章
← shell & ssh 堆内存 & 栈内存 →