@qqi/check-version 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +21 -10
  2. package/bin.mjs +8 -6
  3. package/package.json +6 -5
package/README.md CHANGED
@@ -62,18 +62,25 @@ npx @qqi/check-version n=core c lists s
62
62
  在 `pub.sh` 文件中使用时:
63
63
 
64
64
  ```bash
65
+ CHECK_VERSION="@qqi/check-version"
66
+ install_check_version() {
67
+ if ! npm list -g --depth=0 | grep -q " ${CHECK_VERSION}"; then
68
+ echo "当前未全局安装 '${CHECK_VERSION}',即将进行安装"
69
+ npm install ${CHECK_VERSION} --global
70
+ else
71
+ echo "包 ${CHECK_VERSION} 已全局安装"
72
+ fi
73
+ }
65
74
  # 输出的 npm 发布的 tag。也可以通过调整 cwd 和 name 的参数来适配实际的项目地址
66
- output=$(npx @qqi/check-version c=. 2>&1)
67
75
  tag=""
68
- # 执行 npx 的返回值
69
- exit_code=$?
70
-
71
- # 如果执行成功,即 tag 值获取成功
72
- if [ $exit_code -eq 0 ];then
73
- tag="$output"
74
- else
75
- echo "$output"
76
+ install_check_version
77
+ if ! tag=$(npx "${CHECK_VERSION}" c=. 2>&1); then
78
+ echo "未通过版本校验:$tag"
79
+ exit 1
76
80
  fi
81
+ echo "获取🉐发布标签为 ${tag}"
82
+ # 安装
83
+ npm ci
77
84
 
78
85
  echo "开始发布 npm 包"
79
86
 
@@ -85,9 +92,13 @@ fi
85
92
  echo "🚀🚀 发布成功,完结 🎉🎉 撒花 🎉🎉"
86
93
  ```
87
94
 
95
+ 上面的检测 @qqi/check-version 是否全局安装**至关重要**,关系着自动获取 tag 的命脉,不信的可以查看 [color-pen 的 tag](https://www.npmjs.com/package/color-pen?activeTab=versions),删不掉,根本删不掉
96
+
97
+ [![删不掉的 tag](https://raw.githubusercontent.com/earthnutDev/qqi/main/media/神奇tag.png)](https://www.npmjs.com/package/color-pen?activeTab=versions)
98
+
88
99
  使用 [`npx @qqi/check-version`](https://www.npmjs.com/package/@qqi/check-version) 获取的 tag 是符合标准 npm 的预发布版本的版本号的规则。通过 [`npx vjj`](https://www.npmjs.com/package/vjj) 进行版本的迭代管理即符合标准的 npm 的 publish 的预发布的 tag ,也将在 `CHANGELOG.md` 文件添加更新迭代的版本的日志记录的标题(广子,这就是广子)。
89
100
 
90
- 所以,上面的 .sh 文件将提取 "0.0.1" 的 tag 值为 "latest",提取
101
+ 所以,上面的 .sh 文件将提取 "0.0.1" 的 tag 值为 "latest",若提取 "0.1.0-test.0" 则提取出 "test"
91
102
 
92
103
  ## 文档位置
93
104
 
package/bin.mjs CHANGED
@@ -30,7 +30,7 @@ const name = args.name?.value?.[0].toString() ?? '.';
30
30
  const skip = args.skip?.value?.[0] !== false ? true : false;
31
31
  /** 未检测到输入的包名,则返回 false */
32
32
  if (isUndefined(name) || name === '') {
33
- _p('为检测到输入的包名', false);
33
+ _p('未检测到输入的包名', false);
34
34
  process.exit(1);
35
35
  }
36
36
  /** 文件路径 */
@@ -38,25 +38,27 @@ let filePath = pathJoin(process.cwd(), cwd, name);
38
38
  /// 下面是冗余步骤,有助于在非根目录下查找 package.json 文件
39
39
  const dirPath = getDirectoryBy('package.json', 'file', filePath);
40
40
  if (isUndefined(dirPath)) {
41
- _p(`${filePath} 文件路径不存在`, false);
41
+ _p(`文件 ${filePath} 路径不存在`, false);
42
42
  process.exit(1);
43
43
  }
44
44
  filePath = pathJoin(dirPath, 'package.json');
45
45
  /** 文件路径 */
46
46
  const fileIsExist = fileExist(filePath);
47
47
  if (isUndefined(fileIsExist)) {
48
- _p(`${filePath} 文件路径不存在`, false);
48
+ _p(`${filePath} 文件不存在`, false);
49
49
  process.exit(1);
50
50
  }
51
+ /** package.json 文件内容 */
51
52
  const fileContent = readFileToJsonSync(filePath);
52
53
  if (isNull(fileContent)) {
53
- _p(`读取 ${filePath} 出错`, false);
54
+ _p(`读取 ${filePath} 文件出错`, false);
54
55
  process.exit(1);
55
56
  }
56
57
  if (!fileContent.name || !fileContent.version) {
57
- _p(`读取 ${filePath} 出错,未找到包名或版本号`, false);
58
+ _p(`未找到 ${filePath} 文件包名或版本号`, false);
58
59
  process.exit(1);
59
60
  }
61
+ /** 线上同名包内容 */
60
62
  const pkgInfo = await getNpmPkgInfo(fileContent.name);
61
63
  // 包数据未找到或是版本号已存在则返回
62
64
  if (isNull(pkgInfo.data)) {
@@ -65,7 +67,7 @@ if (isNull(pkgInfo.data)) {
65
67
  _p(getTag(fileContent.version), false);
66
68
  process.exit(0);
67
69
  }
68
- _p(`${fileContent.name} 包未找到`, false);
70
+ _p(`${fileContent.name} 包未找到线上信息`, false);
69
71
  process.exit(1);
70
72
  }
71
73
  // 包数据未找到或是版本号已存在则返回
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@qqi/check-version",
3
3
  "type": "module",
4
- "version": "0.1.2",
4
+ "version": "0.1.3",
5
5
  "description": "一个检测工作目录下 packages 文件夹下子 npm 包版本是否存在的模块",
6
+ "license": "MIT",
6
7
  "dependencies": {
7
- "a-command": "^2.1.8",
8
- "a-js-tools": ">=0.6.1 <1.0.0",
9
- "a-node-tools": "^3.1.4",
10
- "a-type-of-js": ">=0.2.0 <1.0.0"
8
+ "a-command": "^2.1.9",
9
+ "a-js-tools": "^0.6.2",
10
+ "a-node-tools": "^3.1.5",
11
+ "a-type-of-js": "^0.3.0"
11
12
  },
12
13
  "author": {
13
14
  "name": "earthnut",