npm升级package.json依赖包

使用npm管理node的包,可以使用npm update <name>对单个包升级,对于npm的版本大于 2.6.1,可以使用命令:

npm install -g

升级全局的本地包。

对于版本小于2.6.1的一个一个包的升级实在是太麻烦,就想找到一个升级所有本地包的方法,找到两个比较好的方式:shell脚本npm-ckeck

shell脚本

使用shell脚本升级npm包,首先所在找到需要升级的包和版本号,再使用npm install完成升级。
npm -g是管理本地全局包的命令。通过npm -g outdated可以查看那些包有更新:

npm -g outdated

Package    Current  Wanted  Latest  Location
appium       1.5.2   1.5.3   1.5.3
bower        1.7.0   1.7.9   1.7.9
cordova      5.4.1   6.2.0   6.2.0
eslint      2.13.0   3.0.0   3.0.0
fsevents     1.0.8  1.0.12  1.0.12
grommet      0.4.1   0.6.9   0.6.9
requirejs   2.1.22   2.2.0   2.2.0

这里列出来了,当前版本,和最后的版本,只需要得到所有需要升级的包名和版本号就可以使用npm -g install <name>直接升级了。
npm -g outdated还可以使用目录的方式展示,再从中提取出包名和版本号。

npm -g outdated --parseable --depth=0

/usr/local/lib/node_modules/appium:appium@1.5.3:appium@1.5.2:appium@1.5.3
...

在通过cut命令就可以得到最后要升级版本号和包名:

npm -g outdated --parseable --depth=0 | cut -d: -f2

appium@1.5.3
.....

完整的脚本:

#!/bin/sh
set -e
#set -x
for package in $(npm -g outdated --parseable --depth=0 | cut -d: -f2)
donpm -g install "$package"
done

脚本下载地址:https://github.com/jjz/script/blob/master/npm-upgrade.sh

npm-check

npm-check是用来检查npm依赖包是否有更新,错误以及不在使用的,我们也可以使用npm-check进行包的更新。
安装npm-check:

npm install -g npm-check

检查npm包的状态:

npm-check -u -g


CA5E1D6E-93B8-40CA-B190-273B87364C8C.png

通过上下键可以移动光标,使用空格键可以选择需要处理的包,回车直接进行处理。
选择npm@3.10.2包升级到3.10.3

? Choose which packages to update. npm@3.10.3$ npm install --global npm@3.10.3 --color=always
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
/usr/local/lib
└─┬ npm@3.10.3├── aproba@1.0.4├── has-unicode@2.0.1└── read-package-tree@5.1.5[npm-check] Update complete!
[npm-check] npm@3.10.3
[npm-check] You should re-run your tests to make sure everything works with the updates.

通过以上两种方式可以更便利的管理本地的npm包。



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/247663.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Sublime Text 3 快捷键汇总

Sublime Text 3非常实用&#xff0c;但是想要用好&#xff0c;老是忘记&#xff0c;汇总一下&#xff0c;方便自己方便别人。 用惯了vim&#xff0c;有些快捷键也懒得用了&#xff0c;尤其是在win下面&#xff0c;还有图形界面&#xff0c;所以个人觉得最有用的还是搜索类&…

Minimal coverage (贪心,最小覆盖)

题目大意&#xff1a;先确定一个M&#xff0c; 然后输入多组线段的左端和右端的端点坐标&#xff0c;然后让你求出来在所给的线段中能够 把[0, M] 区域完全覆盖完的最少需要的线段数&#xff0c;并输出这些线段的左右端点坐标。 思路分析&#xff1a; 线段区间的起点是0&#x…

vuex知识点

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式&#xff1b;集中存储和管理应用的所有组件状态。 状态&#xff1a;什么是状态&#xff0c;我们可以通俗的理解为数据。Vue只关心视图层&#xff0c;那么视图的状态如何来确定&#xff1f;我们知道是通过数据驱动&#xff0c…

Kafka2.0生产者客户端使用

1 初始化配置 Kafka 通过 KafkaProducer 构造器初始化生产者客户端的配置。   常用的重要配置&#xff0c;详见官网。 bootstrap.servers&#xff1a;Kafka 集群地址&#xff08;host1:post,host2:post&#xff09;&#xff0c;Kafka 客户端初始化时会自动发现地址&#xff0…

vuex小例

少废话&#xff0c;先出东西 vuex main.js import Vue from vue import App from ./App import router from ./router import store from ./store Vue.config.productionTip falsenew Vue({el: #app,router,store,render: xx>xx(App) })store.js 平级目录未建文件夹import…

[论文笔记]CVPR2017_Joint Detection and Identification Feature Learning for Person Search

Title: Joint Detection and Identification Feature Learning for Person Search; aXiv上该论文的第一个版本题目是 End-to-End Deep Learning for Person SearchAuthors: Tong Xiao1* ; Shuang Li1* ; Bochao Wang2 ; Liang Lin2; Xiaogang Wang1 Affilations: 1.The Chines…

php下的原生ajax请求

浏览器中为我们提供了一个JS对象XMLHttpRequet&#xff0c;它可以帮助我们发送HTTP请求&#xff0c;并接受服务端的响应。 意味着我们的浏览器不提交&#xff0c;通过JS就可以请求服务器。ajax(Asynchronous Javascript And XML)其实就是通过XHR对象&#xff0c;执行HTTP请求。…

HBase性能优化总结

HBase性能优化方法总结&#xff08;一&#xff09;&#xff1a;表的设计 1. 表的设计 1.1 Pre-Creating Regions 默认情况下&#xff0c;在创建HBase表的时候会自动创建一个region分区&#xff0c;当导入数据的时候&#xff0c;所有的HBase客户端都向这一个region写数据&#x…

.NetCore如何使用ImageSharp进行图片的生成

ImageSharp是对NetCore平台扩展的一个图像处理方案&#xff0c;以往网上的案例多以生成文字及画出简单图形、验证码等方式进行探讨和实践。 今天我分享一下所在公司项目的实际应用案例&#xff0c;导出微信二维码图片&#xff0c;圆形头像等等。 一、源码获取 Git项目地址&…

vue2工程

vue当然可以使用script标签引入&#xff0c;不需任何依赖即可按照vue的语法进行使用。但中大型商用项目中&#xff0c;还是建议使用工程化方式使用vue&#xff0c;vue提供了官方脚手架vue-cli&#xff0c;可以快速构建vue项目&#xff0c;脚手架会帮助开发者创建好建议的工程目…

flutte的第一个hello world程序

用命令行创建项目&#xff1a; flutter create flutterdemo VSCode或者AS连接手机后 输入 flutter run 编译后就可以将默认的代码显示在手机上了 开始写hello world 代码&#xff0c;这段代码写在根目录\lib\main.dart文件中&#xff0c;也是Flutter主文件。 整个代码如下 impo…

Ajax 设置Access-Control-Allow-Origin实现跨域访问

之前遇到的问题整理 ajax跨域访问是一个老问题了&#xff0c;解决方法很多&#xff0c;比较常用的是JSONP方法&#xff0c;JSONP方法是一种非官方方法&#xff0c;而且这种方法只支持GET方式&#xff0c;不如POST方式安全。 即使使用jquery的jsonp方法&#xff0c;type设为POST…

vue工程webpack模板配置说明

vue工程webpack模板下的配置文件非常多&#xff0c;只能在实际开发过程中反复熟悉&#xff0c;才能渐渐体会官方将配置文件拆分细化的合理性。 主要配置文件中代码的作用从网上摘录了比较全的一份注释&#xff0c;做下记录。 dev-server.js 开发服务端配置 require(./check-v…

目录的拼接

找到被拼接文件所在的目录&#xff0c;然后进行拼接 import os 获取当前目录&#xff1a; os.path.dirname(__file__) 如下&#xff0c;被拼接文件所在目录与当前目录的上级目录在同一文件夹下&#xff1a; os.path.join(os.path.dirname(os.path.dirname(__file__)),‘文件夹路…

vue-resource 拦截器(interceptor)的使用

拦截器-interceptor 在现代的一些前端框架上&#xff0c;拦截器基本上是很基础但很重要的一环&#xff0c;比如Angular原生就支持拦截器配置&#xff0c;VUE的Axios模块也给我们提供了拦截器配置&#xff0c;那么拦截器到底是什么&#xff0c;它有什么用&#xff1f;拦截器能帮…

【GamePlay】入门篇

【GamePlay】入门篇 游戏性编程是指通过一系列游戏系统将游戏想法变成现实的过程。 本次的简例以NPC设计为主。 通常在进行脚本设计前&#xff0c;对NPC的属性进行基本的添加和设定&#xff0c;诸如动画系统、物理系统等等。 1.动画系统 添加Animator组件&#xff0c;绑定骨骼。…

vue axios POST请求中参数以form data和request payload形式的原因

HTTP请求中&#xff0c;如果是get请求&#xff0c;那么表单参数以namevalue&name1value1的形式附到url的后面&#xff0c;如果是post请求&#xff0c;那么表单参数是在请求体中&#xff0c;也是以namevalue&name1value1的形式在请求体中。通过chrome的开发者工具可以看…

vue-resource使用

vue-resource是一个http请求插件&#xff0c;遵循promise&#xff0c;类似jquery中ajax操作。 vue-resource已不被官方推荐&#xff0c;官方推荐axios插件来操作http协议。 vue-resource中提供的方法 get(url, [options]) head(url, [options]) delete(url, [options]) jso…

HttpHttps

http协议与https Http 客户端发送一个HTTP请求到服务器的请求消息包括以下格式&#xff1a; **请求行&#xff08;request line&#xff09;、请求头部&#xff08;header&#xff09;、空行 和请求数据四个部分组成。** Get请求例子&#xff0c;使用Charles抓取的request&…

vue2使用axios post跳坑,封装成模块

终于将vue-resource替换成axios了&#xff0c;其中像application/x-www-form-urlencoded发送的头信息以及返回的response结果这两点都需要注意一下。 其实https://github.com/mzabriskie/axios也有说明的。因为我在vue-resource中使用了Vue.http.options.emulateJSON true;&am…