NPM 显示已安装和过期的 package 包
NPM 是使用 Node.js 时首选的包管理器。 我们不需要强调了解工具的重要性,当然,这也适用于 NPM。 这篇文章将向大家展示使用 NPM 显示本地存储库的已安装包或系统上全局安装的包的提示和技巧。
为了运行本文中使用的命令,我们在 3.3.4 版本中利用了 NPM。 我们应该保存运行任何 2.x 版本的 NPM 并且具有与以下示例相同的输出。
查看已安装的包
在阅读使用 NPM 显示已安装的包时,我们首先想到的是:为什么我不应该只打开 package.json 并查找依赖项部分? 你知道,这肯定是一个有效的想法,当然你会找到你要找的东西。 问题是,使用命令行可能更快,或者我们不想打开 IDE 只是为了查看给定的包是否是项目中的依赖项。
可以利用 NPM 的功能并列出项目的已安装包。 以下命令将打印已安装软件包及其依赖项的列表:
$ npm ls
# 或者
$ npm list
如果我们只对直接依赖的已安装软件包列表感兴趣,请使用 --depth
选项并传递 --depth=0
。
$ npm ls --depth=0
jiyik-homepage@1.0.0 /Users/jiyik/Dev/FutureStudio/homepage
├── bcrypt-as-promised@1.0.1
…
└── when@3.7.3
还有一个 NPM 命令可以在列出已安装的模块时打印额外的包信息:
$ npm ll
# 或者
$ npm la
npm ll
和 npm la
两个命令都将打印相同的信息,如下所示:
$ npm ll
jiyik-homepage@2.0.1
│ /Users/jiyik/Dev/FutureStudio/homepage
│ Future Studio homepage based on hapi, handlebars and Twitter bootstrap
│ https://www.jiyik.com/giturlto/homepage.git
│ https://www.jiyik.com
├── bcrypt-as-promised@1.0.1
│ A promisified bcrypt
│ git+ssh://git@github.com/iceddev/bcrypt-as-promised.git
│ https://github.com/iceddev/bcrypt-as-promised
…
└── when@3.7.3
A lightweight Promises/A+ and when() implementation, plus other async goodies.
git+https://github.com/cujojs/when.git
http://cujojs.com
我们将看到一般项目信息,包括当前版本号、项目在本地系统上的位置、项目描述和 url。所有这些信息都是从你的 package.json 文件中读取的,没有附加任何其他的技术。此外,依赖树将列出已安装的包,还包括版本号、包描述、git url 和主页。
有用的选项:
--json
:布尔类型,默认值为 false,可能值为 true|false ;--long
:布尔类型,默认值为 false,可能值为 true|false;--depth
:int 类型并且可能的值是任何正数
注意:还有仅显示生产依赖项 --prod=true
或仅显示开发依赖项 --dev=true
的选项。老实说,我们从不将已安装包的列表限制在给定的环境中,因为我们对所有包的列表感兴趣。我们可以在 NPM 的 ls 文档页面上找到有关 –dev 和 –prod 选项的更多信息。
过期的包
维护我们的应用程序和依赖项对于安全性和从我们依赖的包中获取新的可用功能至关重要。 NPM 提供了 outdated
命令来打印过期包的列表。
$ npm outdated
过时软件包列表包括当前安装的版本、在 package.json 文件中定义的所需版本以及模块的最新稳定版本。 输出还显示了一个位置,该位置指示我们为其请求过时包列表的项目名称。
$ npm outdated
Package Current Wanted Latest Location
boom 2.7.2 2.7.2 2.9.0 jiyik-homepage
handlebars 3.0.3 3.0.3 4.0.3 jiyik-homepage
hapi 8.5.3 8.5.3 10.0.1 jiyik-homepage
正如我们在上面的示例中所看到的那样,我们的主页项目目前有三个过时的包。 好的,好的,你已经说明了你的观点:D … 需要维护!
我们还可以对全局安装的软件包使用 outdated 的命令:
$ npm outdated -g
你看,我的机器上也有三个包过时了。
$ npm outdated -g
Package Current Wanted Latest Location
npm-check-updates 2.2.0 2.2.3 2.2.3 lib
pm2 0.14.7 0.15.5 0.15.5 lib
supervisor 0.7.1 0.8.0 0.8.0 lib
选项
过时的软件包也有选项。 下面的示例使用 --long
选项额外显示过时包的包类型。 包类型是依赖项或 devDependencies。
$ npm outdated --long=true
Package Current Wanted Latest Location Package Type
boom 2.7.2 2.7.2 2.9.0 jiyik-homepage dependencies
handlebars 3.0.3 3.0.3 4.0.3 jiyik-homepage dependencies
hapi 8.5.3 8.5.3 10.0.1 jiyik-homepage dependencies
--long
:布尔类型,默认值为false,可能值为true|false--depth
: int 类型,可能的值是任何正数
注意:还可以选择将过期包列表打印为 JSON (–json=true)。 选项的完整概述可在 NPM 的文档页面上找到。