npm 包的更新速度很快,为了将项目或者全局依赖更新到最新版本。传统的做法是一个一个更新,比如更新 react 到最新版本,命令如下:
# npm
npm i --save react@latest
# yarn
yarn add react@latest
yarn 是 facebook 发明的新一代 js 包管理器,支持离线使用。这是 npm 与 yarn 的 命令对照。
但是,这种做法相当耗时。有没有更简单的方法呢?
答案是使用 npm-check 或者 yarn。两者都需要全局安装。
npm i -g yarn
npm i -g npm-check
使用 npm-check 更新项目依赖
在项目根目录运行
npm-check -u
输出如下:
? Choose which packages to update. (Press <space> to select)
Update package.json to match version installed.
❯◯ chalk ^1.1.3 ❯ 2.4.2 https://github.com/chalk/chalk#readme
◯ cheerio ^0.22.0 ❯ 0.22.0 https://github.com/cheeriojs/cheerio#readme
◯ debug ^2.3.3 ❯ 4.1.1 https://github.com/visionmedia/debug#readme
◯ log4js ^1.0.1 ❯ 4.1.0 https://log4js-node.github.io/log4js-node/
◯ mustache ^2.3.0 ❯ 3.0.1 https://github.com/janl/mustache.js
◯ request 2.79.0 ❯ 2.88.0 https://github.com/request/request#readme
◯ unescape ^0.2.0 ❯ 1.0.1 https://github.com/jonschlinkert/unescape
◯ yargs ^6.4.0 ❯ 13.2.2 https://yargs.js.org/
Space to select. Enter to start upgrading. Control-C to cancel.
空格切换包是否更新,Control + C 取消更新,回车就是执行更新。
使用 yarn 更新项目依赖
在项目根目录运行
yarn upgrade-interactive --latest
输出如下:
yarn upgrade-interactive v1.15.2
info Color legend :
"<red>" : Major Update backward-incompatible updates
"<yellow>" : Minor Update backward-compatible features
"<green>" : Patch Update backward-compatible bug fixes
? Choose which packages to update. (Press <space> to select, <a> to toggle all,
<i> to invert selection)
dependencies
name range from to url
❯◯ chalk latest 1.1.3 ❯ 2.4.2 https://github.com/chalk/chalk#readm
e
◯ cheerio latest 0.22.0 ❯ 1.0.0-rc.3 https://github.com/cheeriojs/cheerio
#readme
◯ debug latest 2.6.9 ❯ 4.1.1 https://github.com/visionmedia/debug
#readme
◯ log4js latest 1.1.1 ❯ 4.1.0 https://log4js-node.github.io/log4js
-node/
◯ mustache latest 2.3.2 ❯ 3.0.1 https://github.com/janl/mustache.js
◯ request latest 2.79.0 ❯ 2.88.0 https://github.com/request/request#r
eadme
◯ unescape latest 0.2.0 ❯ 1.0.1 https://github.com/jonschlinkert/une
scape
◯ yargs latest 6.6.0 ❯ 13.2.2 https://yargs.js.org/
yarn 提供了全选切换功能,就是按键 A,空格切换包是否更新,Control + C 取消更新,回车就是执行更新。
yarn 的更新命令太长了,谁记得住,这种时候,请合理使用命令行工具的帮助,比如运行 yarn help。
更新命令对照表
更新全局依赖同上
说明 | yarn | npm-check |
---|---|---|
更新项目依赖,没有交互 | yarn upgrade --latest | npm-check -y |
更新项目依赖,有交互 | yarn upgrade-interactive --latest | npm-check -u |
更新全局依赖,没有交互 | yarn global upgrade --latest | npm-check -g -y |
更新全局依赖,有交互 | yarn global upgrade-interactive --latest | npm-check -g -u |
检测原理
yarn 是根据 yarn.lock 文件来检测版本是否是最新的,所以项目是使用 npm 安装依赖包,更新前要运行 yarn install
一下。
npm-check 是检测 package.json 文件,项目存在 node_modules 文件夹即可更新。
更新提醒
没有交互就是将依赖包直接更新到最新版本,推荐使用交互式更新,会有更新的警告信息。
最新的依赖包,API 可能发生重大改变。为了顺利更新,更新前请 git commit
一下,更新失败了也能顺利回退。
不推荐使用 cnpm
为了加快安装依赖的安装速度,可能被同事安利 cnpm,但是这样会导致包的依赖安装不正常,项目无法运行。
更好的做法是使用 nrm 切换下载源。
平时使用 yarn 装包,npm 运行脚本。
安装 nrm
npm i -g nrm
查看下载镜像源
nrm ls
输出如下
npm ---- https://registry.npmjs.org/
cnpm --- http://r.cnpmjs.org/
* taobao - https://registry.npm.taobao.org/
nj ----- https://registry.nodejitsu.com/
npmMirror https://skimdb.npmjs.com/registry/
edunpm - http://registry.enpmjs.org/
切换镜像源
nrm use taobao
装包命令不变,比如安装 react 。
# npm
npm i --save react
# yarn
yarn add react
体验飞一般的装包速度,再也不是装包一小时,码代码五分钟。
一行命令更新所有 npm 依赖包的更多相关文章
-
解决国内npm依赖包安装慢的问题
可以通过 npm config set registry http://registry.npm.taobao.org命令设置镜像服务器为阿里巴巴镜像服务器,速度会快很多,亲测有效.
-
更新python的依赖包,亲测!
输入pip install --upgrade pandas 无需卸载,让它自己更新就好 pandas可以改成别的包
-
package.json中 npm依赖包版本前的符号的意义
版本的格式 major.minor.patch 主版本号.次版本号.修补版本号 ———————————————————— patch:修复bug,兼容老版本 minor:新增功能,兼容老版本 majo ...
-
package.json 中 npm 依赖包版本前的符号的意义
版本的格式 major.minor.patch:主版本号.次版本号.修补版本号 patch:修复bug,兼容老版本 minor:新增功能,兼容老版本 major:新增功能,不兼容老版本 version ...
-
maven依赖包无法更新下载
在IDEA工程中导入已存在的module时,按默认设置,直到完成导入,结果所有的外部依赖包都无法更新下载,即使是更新了setting.xml配置文件信息,依旧是不能更新下载依赖包,现将具体的操作过程和 ...
-
npm常用命令学习(npm install -D,semver版本规范, npm进行版本管理的最佳实践用法)
什么是npm npm有两层含义.一层含义是Node的开放式模块登记和管理系统,网址为npmjs.org.另一层含义是Node默认的模块管理器,是一个命令行下的软件,用来安装和管理Node模块. npm ...
-
git克隆项目到本地&;&;全局安装依赖项目&;&;安装依赖包&;&;启动服务
一.安装本地开发环境 1.安装本项目 在需要保存到本地的项目的文件夹,进入到文件夹里点击右键,bash here,出现下图: 2.安装依赖项目 3.安装依赖包(进入到命令行) # 安装依赖包 $ ...
-
Android 源码编译环境搭建(64位Ubuntu)各种依赖包安装
1.准备: 普通PC(要求能上网), PC的操作系统Ubuntu 10.04 LTS(64位的),已经下载好的Android 1.6_r1的源代码. 2.Linux的依赖package安装: 为了更快 ...
-
Python项目搬迁,快捷导出环境依赖包到requirements.txt
项目搬迁的时候,需要把当前的环境依赖包导出,然后到部署项目的服务器上安装依赖. 我们可以通过下面的命令执行,把依赖包导出到requirements.txt文件里. 生成requirements.txt ...
随机推荐
-
Python框架之Tornado(四)源码之褪去模板外衣
上一篇介绍了客户端请求在tornado框架中的生命周期,其本质就是利用epoll和socket来获取并处理请求.在上一篇的内容中,我们只是给客户端返回了简单的字符串,如:“Hello World”,而 ...
-
C++类成员函数的 重载、覆盖和隐藏区别
重载:成员函数被重载的特征: (1)相同的范围(在同一个类中): (2)函数名字相同: (3)参数不同: (4)virtual 关键字可有可无. #include <iostream> u ...
-
Activity Recognition行为识别
暑假听了computer vision的一个Summer School,里面Jason J. Corso讲了他们运用Low-Mid-High层次结构进行Video Understanding 和 Ac ...
-
POJ 3624 Charm Bracelet
DP 一直是心中痛,不多说了,这个暑假就坑在这上了. 这暑假第一道DP题,01背包问题. 题意是说物品有 重量和价值 ,但你能承受的重量有限,问你能带的最大价值. 这题数组开大点,尽管不知道有啥坑点, ...
-
Android-取消GridView/ListView item被点击时的效果
方法一,在控件被初始化的时候设置 gridView.setSelector(new ColorDrawable(Color.TRANSPARENT)); listView.setSelector(ne ...
-
Java NIO缓冲
缓冲区(buffer)是从即将写入通道(channel)或刚刚从通道中读出的一段数据.它是一个持有数据,并扮演NIO通道端点的对象.缓冲区为数据访问和读写过程提供正式机制. 它是NIO和老版Java ...
-
BeagleBone Black Linux驱动程序开发入门(0): 开发环境
搭建arm-linux交叉编译环境的教程有很多,这里只作简要说明.Host宿主机是Ubuntu10.04,我把它装在Windows XP的VirtualBox虚拟机中,这样相当于一台主机有两个操作系统 ...
-
简单tableView的使用
UITableView是一个用于显示列表的视图,可以作为子视图镶嵌在主视图上,可以滑动,选取各种参数 定义: @interface ViewController : UIViewController& ...
-
;html5斜体字
font-style:italic; italic|oblique|normal 依次倾斜,越来越邪:
-
知识点:Mysql 索引优化实战(3)
知识点:Mysql 索引原理完全手册(1) 知识点:Mysql 索引原理完全手册(2) 知识点:Mysql 索引优化实战(3) 知识点:Mysql 数据库索引优化实战(4) 索引原理知识回顾 索引的性 ...