一行命令更新所有 npm 依赖包
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 ...
- 突然发现,npm里request依赖包已经弃用,怎么办?
摘要:在npm官网查看了request依赖包的当前状态,果然在2020年就被弃用了. 本文分享自华为云社区<npm里request依赖包已经弃用?致敬并调研替代方案!>,作者: gentl ...
- 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安装: 为了更快 ...
随机推荐
- Javascript继承,再谈
说到Javascript的继承,相信只要是前端开发者都有所了解或应用,因为这是太基础的知识了.但不知各位有没有深入去理解其中的玄机与奥秘.今本人不才,但也想用自己的理解来说一说这其中的玄机和奥秘. 一 ...
- Java之增强的for 循环
3. 增强for循环 1) 作用: 对存储对象的容器进行迭代 2) jdk5以前怎么迭代 3) 增强for循环迭代数组 String [] arr = {"a", "b ...
- APP内置react 应用与APP的交互问题
一.内置的H5应用唤起(返回)app 可以用 intent url 来唤起,但要求 webview 实现 shouldOverrideUrlLoading() ,解析 uri,找到对应的 activi ...
- 【BZOJ 2004】: [Hnoi2010]Bus 公交线路
题目链接: TP 题解: 所以说,超显眼的数据范围啊. 很显然我们对于每个P的区间都是要有k个站被bus停留,然后考虑转移的话应该是把这k个站里的某个bus往前走,那么转移也很显然了,n的范围很大 ...
- sdoi 2009 HH去散步 矩阵乘
如果没有题里的"不会立刻沿着刚刚走来的路走回"限制,那么直接矩乘计算k步的方案数 但加了这个限制,就不能以点来矩乘了,考虑边数<=60,如果以边建邻接矩阵呢?? 先拆边,再把 ...
- CF_229E_Gift_概率DP+组合数学
CF_229E_Gift_概率DP+组合数学 题目描述: 很久很久以前,一位老人和他的妻子住在蔚蓝的海边.有一天,这位老人前去捕鱼,他捉到了一条活着的金鱼.鱼说:“噢,老渔人!我祈求你放我回到海里,这 ...
- python九九
学了有一段时间了,才发现自己连九九乘法表都写不出,好好笑,哈哈. 代码实现: for i in range(1,10): for j in range(1,i+1): print('%dx%d=%-2 ...
- django 多对多自定义第三张表时的注意事项
杂交(自定义第三张表+ManyToManyField) # modles.py class Boy(models.Model): name = models.CharField(max_length= ...
- 为啥程序会有bug?
如果这是第二次看到我的文章,欢迎右侧扫码订阅我哟~
- springboot+redis分布式锁-模拟抢单
本篇内容主要讲解的是redis分布式锁,这个在各大厂面试几乎都是必备的,下面结合模拟抢单的场景来使用她:本篇不涉及到的redis环境搭建,快速搭建个人测试环境,这里建议使用docker:本篇内容节点如 ...