UNPKG

2.78 kBMarkdownView Raw
1# mod-info
2Get 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
22import 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*/
31const 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
45type ILevelConfig = 'major' | 'minor' | 'patch';
46interface 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
63interface 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
108MIT LICENSE
109