学习一个命令行工具,最简单直接的方式就是查看它的用户手册,npm提供了并不算很详细的命令行手册,可以通过npm -h查看(unix用户还可以通过man npm查看,相对来说比windows详细多了),需要某个npm命令更详细的文档则需要通过npm help cmd如npm help install来查看,注意不是 npm install help ,这样将会安装help包。
另外npm cmd -h也是一个快速查看命令可以怎么使用和搭配哪些常用选项的方法。
假如react@15(版本号,下同)发布了,想尝鲜的小伙伴该怎么更新呢?
首先得知道npm上是否已经更新,npm info react可以查看到react在npm上发布过哪些版本以及最新的版本,但是内容太多,让人眼花缭乱,配合grep会好一些。
其实我们只想知道react最新的版本,使用npm dist-tags ls react直接列出react发布过哪些tag,> npm dist-tags ls react0.10.0-rc1: 0.10.0-rc10.11.0-rc1: 0.11.0-rc1latest: 0.14.7next: 15.0.0-rc.1
以及这些tag目前最新是哪些版本,比如最常用的latest,也是默认tag。
next tag已经发布了react@15的第一个rc版了,尝鲜的朋友可以试一试了。
另外一个命令npm outdated,会检测当前安装的所有npm包是否有更新,并列出可以更新的包,如果没有任何输出,那么恭喜你,所有的包都是不需要更新的。
如果之前安装的react版本是0.14.3,同时还安装了redux@3.2.0,执行npm outdated会输出Package Current Wanted Latest Locationreact 0.14.3 0.14.7 0.14.7 exampleredux 3.2.0 3.3.1 3.3.1 example
这种情况则说明react和redux该更新了,更新具体某个包使用npm update package_name即可,npm update则会更新所有可更新的包。
npm publish
npm作为一个大仓库,每天都有大量的新包发布上来,发布自己的包非常容易,而且几乎零门槛,对应的发布的命令是npm publish,但前提是你需要一个npm账号。
假设已经有账号了,在发布之前需要使用npm login进行登录,正式发布之前请先阅读以下关于版本号的介绍。
npm包的版本号一般都是x.y.z的形式。
其中x表示主版本号,通常有重大改变或者达到里程碑才改变;
y表示次要版本号,或二级版本号,在保证主体功能基本不变的情况下,如果适当增加了新功能可以更新此版本号;
z表示尾版本号或者补丁号,一些小范围的修修补补就可以更新补丁号。
第一版本通常是0.0.1或者1.0.0,当修改了代码,需要更新版本号重新发布到npm,不知道的小伙伴(年轻的我)肯定会手动修改package.json的version字段,而高级的玩法是直接使用npm version <update_type>命令自动搞定。
详细用法可通过npm help version查看,这里只介绍最常用的三种。npm version patch => z+1npm version minor => y+1 && z=0npm version major => x+1 && y=0 && z=0
三个选项分别对应三部分的版本号,每次运行命令会导致相应的版本号递增一,同时子版本号清零。
如果npm包同时又是一个git仓库,在运行了npm version <update_type>和npm publish之后,npm会自动给git仓库打上一个跟当前版本号一样的tag,对于挂在github上的npm包很有用。