yarn & npm

# node升级

1、window系统升级node就只有到node官网下载window安装包来覆盖之前的node
2、mac升级node版本
   npm i -g n 
   n 12.9.1 //指定版本升级
   n latest //安装最新版本
   n stable //安装最稳定的版本

# 升级包

1

npm install -g npm-check    //安装全局的包
npm update <name> -g        //全部安装不建议用
npm update <name>           //单个安装

1
2
3
4

2

yarn global add npm-check-updates  //安装全局的包

//ncu  查看所有可以安装的包
sudo ncu -u <name>  //这个只是改变package里面的版本 不会更新包
//所以要sudo ncu -u <name> && sudo yarn 

1
2
3
4
5
6

3推荐

yarn upgrade-interactive --latest //需要手动选择升级的依赖包,按空格键选择,a 键切换所有,i 键反选选择

1
2

4

yarn upgrade react --latest //yarn upgrade 更新依赖包时yarn.lock更新但package.json不同步更新版本信息,网上说会同步更新,我试了下,未更新,具体看你们

1
2

# 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

# 你必须知道的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` 显示所有配置设置
1
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 // 指定版本号
1
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'

# 参考文章