1 | # mod-info
|
2 | Get the latest version update prompt of the node module (npm).
|
3 |
|
4 | 获取 node 模块最新版本更新提示
|
5 |
|
6 | [![npm](https://img.shields.io/npm/v/mod-info.svg?style=flat)](https://www.npmjs.org/package/mod-info)
|
7 | [![install size](https://packagephobia.com/badge?p=mod-info)](https://packagephobia.com/result?p=mod-info)
|
8 | ![node-current (tag)](https://img.shields.io/node/v/mod-info/latest)
|
9 | [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/echosoar/mod-info/master/LICENSE)
|
10 |
|
11 |
|
12 | <br />
|
13 |
|
14 | ## 使用
|
15 |
|
16 | ```bash
|
17 | $ npm i mod-info --save
|
18 | ```
|
19 |
|
20 | ```ts
|
21 |
|
22 | import mi from 'mod-info';
|
23 |
|
24 | /*
|
25 | @params module name <string>
|
26 | @params module current version <string>
|
27 | @params? config <IConfig> 详见类型定义
|
28 |
|
29 | @return info <IResult> 详见类型定义
|
30 | */
|
31 | const info = await mi('test-mode-info', '1.1.4');
|
32 | /*
|
33 | {
|
34 | update: true, // 是否存在更新的版本
|
35 | version: '1.2.4' // 更新的版本号
|
36 | tips: [ // 一些更新内容提示
|
37 | '一些更新内容提示'
|
38 | ]
|
39 | }
|
40 | */
|
41 | ```
|
42 | ## 类型定义
|
43 | ### IConfig
|
44 | ```ts
|
45 | type ILevelConfig = 'major' | 'minor' | 'patch';
|
46 | interface IConfig {
|
47 | // 配置更新提示等级
|
48 | // 配置为 major 时只有发布更高 major 版本了才认为更新
|
49 | // 配置为 minor 时只有发布了相同 major 版本,且 minor 版本更高才认为更新
|
50 | // 配置为 patch 时只有发布了相同 major 和 minor 版本,且 patch 版本更高才认为更新
|
51 | // 默认值为 ['major', 'minor', 'patch']
|
52 | level?: ILevelConfig[];
|
53 |
|
54 | // 检测更新间隔,单位为 毫秒,默认为 24 * 60 * 60 * 1000,即一天内只检测一次
|
55 | timeout?: number;
|
56 |
|
57 | // 是否忽略非正式版本的更新,例如 1.2-beta.3 这种 beta 版本,默认为 true
|
58 | ignoreInformalVersion?: boolean;
|
59 | }
|
60 | ```
|
61 | ### IResult
|
62 | ```ts
|
63 | interface IResult {
|
64 | // 是否存在(当前检测规则 level 下的)最新版本
|
65 | update: boolean;
|
66 |
|
67 | // 如果存在最新版本,它的版本号是
|
68 | version: string;
|
69 |
|
70 | // 当前版本匹配到的 更新提示信息 列表
|
71 | tips: string[];
|
72 | }
|
73 | ```
|
74 |
|
75 | ## 更新提示信息配置
|
76 |
|
77 | 在模块的 `package.json` 中通过 `module-info-tips` 可以配置 `更新提示信息`,使用 `mod-info` 检测版本时会获取到这些提示信息。
|
78 |
|
79 | 更新提示信息可以通过 `match` 和 `ignore` 两个字段来匹配或忽略在某些版本下提示,同时支持使用 `*` 或 `x` 来匹配任意版本,例如:
|
80 |
|
81 | ```json
|
82 | {
|
83 | "name": "test-mode-info",
|
84 | "version": "1.2.4",
|
85 | "module-info-tips": [
|
86 | {
|
87 | "match": "0",
|
88 | "ignore": "0.1.*",
|
89 | "tip": "0.x tip"
|
90 | },
|
91 | {
|
92 | "match": ["1.2", "1.3"],
|
93 | "ignore": ["1.2.3"],
|
94 | "tip": "1.x tip"
|
95 | },
|
96 | {
|
97 | "match": "*",
|
98 | "ignore": "*.1",
|
99 | "tip": "x tip"
|
100 | }
|
101 | ]
|
102 | }
|
103 |
|
104 | ```
|
105 |
|
106 | ---
|
107 |
|
108 | MIT LICENSE
|
109 |
|