"version"
字段的格式必须x.x.x
符合语义版本控制准则。为了帮助依赖于您的代码的开发人员,我们建议从以下位置开始您的软件包版本1.0.0并按如下所示递增。
代码状态 | 阶段 | 规则 | 示例版本 |
---|---|---|---|
初版 | 新产品 | 从1.0.0开始 | 1.0.0 |
向后兼容的错误修复 | 补丁发布 | 递增第三位数 | 1.0.1 |
向后兼容的新功能 | 轻微释放 | 递增中间数字并将最后一位重置为零 | 1.1.0 |
更改会破坏向后兼容性 | 主要发行 | 递增第一位并将中间和最后一位重置为零 | 2.0.0 |
除了本章介绍的部分外,NPM还提供了很多功能,package.json里也有很多其它有用的字段。
除了可以在npmjs.org/doc/查看官方文档外,这里再介绍一些NPM常用命令。
npm 命令 | 作用 | 例子 | 备注 |
---|---|---|---|
npm help | 可查看所有命令 | ||
npm help <command> | 可查看某条命令的详细帮助 | npm help install | |
npm install | |||
npm publish | |||
npm update <package> | 可以把当前目录下node_modules子目录里边的对应模块更新至最新版本 | ||
npm update <package> -g | 可以把全局安装的对应命令行程序更新至最新版。 | ||
npm cache clear | 清空NPM本地缓存 | ||
npm unpublish <package>@<version> | 可以撤销发布自己发布过的某个版本代码 | ||
npm view xxx versions | Npm查看某个包的版本信息 | npm view express versions | |
tree -d node_modules/ | 查看包依赖关系 | ||
npm ls | 可以看到模块间彼此依赖关系 |
举个例子: 有一个模块A,其依赖于B:
image.png
现在有一个app应用依赖于A,执行:npm install
,会自动安装所有依赖。
npm3 会将模块A 和模块B 安装到同一 node_modules 目录下,二者是同级的;
而npm2 依然会在node_modules 中安装A,但是会将B 安装到 A里面的node_modules, 也就是 A 和 B 是嵌套关系:
image.png
现在假如 app 需要另一个模块C,并且 C 是依赖于另一个版本的B:
image.png
那么问题来了,在npm2中,由于是层层嵌套的结构,所以继续嵌套即可,但是npm3如何处理呢?已经有一个 B v1.0版本了,又不能相同目录下再来一个 B v2.0 ,那么变通一下,将 B v2.0 嵌套在 C 中即可:
image.png
在终端中,文件树长得像下面这样:
image.png
由于npm3 的改变,怕分不清彼此依赖了吗?
没关系,执行 npm ls
依然可以看到模块间彼此依赖关系:
image.png
如果你想查看最浅层的依赖关系,只需要:npm ls --depth=0
image.png
npm install npm-check-updates -g
、npm install npm-check -g
npm-check-updates
或者 ncu
ncu -u
&& npm install
可以将node_modules
先删除了再继续