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 依赖包的更多相关文章

  1. 解决国内npm依赖包安装慢的问题

    可以通过 npm config set registry http://registry.npm.taobao.org命令设置镜像服务器为阿里巴巴镜像服务器,速度会快很多,亲测有效.

  2. 更新python的依赖包,亲测!

    输入pip install --upgrade pandas 无需卸载,让它自己更新就好 pandas可以改成别的包

  3. package.json中 npm依赖包版本前的符号的意义

    版本的格式 major.minor.patch 主版本号.次版本号.修补版本号 ———————————————————— patch:修复bug,兼容老版本 minor:新增功能,兼容老版本 majo ...

  4. package.json 中 npm 依赖包版本前的符号的意义

    版本的格式 major.minor.patch:主版本号.次版本号.修补版本号 patch:修复bug,兼容老版本 minor:新增功能,兼容老版本 major:新增功能,不兼容老版本 version ...

  5. 突然发现,npm里request依赖包已经弃用,怎么办?

    摘要:在npm官网查看了request依赖包的当前状态,果然在2020年就被弃用了. 本文分享自华为云社区<npm里request依赖包已经弃用?致敬并调研替代方案!>,作者: gentl ...

  6. maven依赖包无法更新下载

    在IDEA工程中导入已存在的module时,按默认设置,直到完成导入,结果所有的外部依赖包都无法更新下载,即使是更新了setting.xml配置文件信息,依旧是不能更新下载依赖包,现将具体的操作过程和 ...

  7. npm常用命令学习(npm install -D,semver版本规范, npm进行版本管理的最佳实践用法)

    什么是npm npm有两层含义.一层含义是Node的开放式模块登记和管理系统,网址为npmjs.org.另一层含义是Node默认的模块管理器,是一个命令行下的软件,用来安装和管理Node模块. npm ...

  8. git克隆项目到本地&&全局安装依赖项目&&安装依赖包&&启动服务

     一.安装本地开发环境 1.安装本项目 在需要保存到本地的项目的文件夹,进入到文件夹里点击右键,bash here,出现下图: 2.安装依赖项目  3.安装依赖包(进入到命令行) # 安装依赖包 $ ...

  9. Android 源码编译环境搭建(64位Ubuntu)各种依赖包安装

    1.准备: 普通PC(要求能上网), PC的操作系统Ubuntu 10.04 LTS(64位的),已经下载好的Android 1.6_r1的源代码. 2.Linux的依赖package安装: 为了更快 ...

随机推荐

  1. Using variables inside Postman and Collection Runner

    Variables are among the most powerful features in Postman. Using variables in your Postman requests, ...

  2. ZooKeeper 安装、配置

    http://blog.csdn.net/franklysun/article/details/6424582 如题本文介绍的是ZooKeeper 的安装和配置过程,此过程非常简单,关键是如何应用(将 ...

  3. CSS透明opacity和IE各版本透明度滤镜filter的准确用法

    滤镜名    说明 Alpha     让HTML元件呈现出透明的渐进效果Blur     让HTML元件产生风吹模糊的效果Chroma     让图像中的某一颜色变成透明色DropShadow    ...

  4. Git详解及github与gitlab使用

    第一章 关于版本控制 第二章 GIT简介 第三章 GIT安装 第四章 初次运行GIT前配置 第五章 初始化仓库 第六章 GIT命令操作 第七章 GIT分支结构

  5. netcore 获取本地网络IP地址

    .net framework 下面可以用下面的代码获取到本地网络ip地址.netcore下面这个代码也依然可以用 System.Net.Dns.GetHostName() System.Net.Dns ...

  6. linux系统版本查看

    Linux下如何查看版本信息, 包括位数.版本信息以及CPU内核信息.CPU具体型号等等,整个CPU信息一目了然. 1.# uname -a   (Linux查看版本当前操作系统内核信息)   Lin ...

  7. appium 常用API使用总结!

    将常用函数进行适用总结,后期在使用的过程中直接查找调用即可 获取界面属性.控件属性 1.current_activity:获取activity名称 device.current_activity 2. ...

  8. MYSQL——解题查询语句答题思路,再难的查询都不怕!

    select查询语句,作为测试人员,使用此语句是家常便饭,是必须掌握的部分,由开始学习mysql到网上搜索试题做,开始做题一塌糊涂,拿到题目就晕,无从下手,现在慢慢总结了一套自己做题的方式,很开森,嘿 ...

  9. 由ORACLE:ORA-28001: the password has expired(密码过期)引起ODI资料库连接失败

    今天,连接ODI,出现下面的错误 oracle.odi.core.config.WorkRepositoryResourceFailureException: ODI-10182: 资料档案库访问期间 ...

  10. TensorFlow从1到2(五)图片内容识别和自然语言语义识别

    Keras内置的预定义模型 上一节我们讲过了完整的保存模型及其训练完成的参数. Keras中使用这种方式,预置了多个著名的成熟神经网络模型.当然,这实际是Keras的功劳,并不适合算在TensorFl ...