Lerna脚手架搭建(十三):通用 npm API 模块封装
本文最后更新于:2024年12月10日 下午
一、获取当前版本号和模块名 👈
- 编辑
core/cli/lib/index.js
文件,添加 checkGlobalUpdate 方法,内容如下:
1 |
|
二、获取所有版本号 👈
- 在
xuven-cli-dev
目录下,执行命令lerna create get-npm-info ./utils/get-npm-info
创建get-npm-info
; - lerna 会把包添加到 core 目录下,我们需要手动拉到 utils 目录下,并且,重命名
utils/get-npm-info/lib/get-npm-info.js
为index.js
; - 修改
utils/get-npm-info/package.json
内 main 参数为lib/index.js
; - 编辑
utils/get-npm-info/lib/index.js
,内容如下:
1 |
|
- 编辑
core/cli/package.json
,添加依赖项:"@xuven-cli-dev/get-npm-info": "file:../../utils/get-npm-info",
; - 编辑
core/cli/lib/index.js
文件内的 checkGlobalUpdate 方法,内容如下:
1 |
|
- 执行
xuven-cli-dev
,输出如下:
- 在
xuven-cli-dev
目录下执行命令lerna add axios utils/get-npm-info
,安装 axios 库; - 在
xuven-cli-dev
目录下执行命令lerna add url-join utils/get-npm-info
,安装 url-join 库; - 在
xuven-cli-dev
目录下执行命令lerna add semver utils/get-npm-info
,安装 semver 库; - 编辑
utils/get-npm-info/lib/index.js
,内容如下:
1 |
|
- 执行
xuven-cli-dev
,输出如下:
三、提取所有版本号,比对 👈
- 编辑
utils/get-npm-info/lib/index.js
,添加 getNpmVersions 方法,内容如下:
1 |
|
- 编辑
core/cli/lib/index.js
文件内的 checkGlobalUpdate 方法,内容如下:
1 |
|
- 执行
xuven-cli-dev
,输出如下:
- 编辑
utils/get-npm-info/lib/index.js
,添加 getSemverVersions 和 getNpmSemverVersion 方法,内容如下:
1 |
|
- 编辑
core/cli/lib/index.js
文件内的 checkGlobalUpdate 方法,内容如下:
1 |
|
- 执行
xuven-cli-dev --debug
,输出如下:
- 编辑
utils/get-npm-info/lib/index.js
内的 getSemverVersions 方法,添加排序:
1 |
|
- 编辑
utils/get-npm-info/lib/index.js
内的 getNpmSemverVersion 方法,添加判断:
1 |
|
- 编辑
core/cli/lib/index.js
文件内的 checkGlobalUpdate 方法,内容如下:
1 |
|
- 执行
xuven-cli-dev --debug
,可以看到输出了最新的版本号:
四、提示更新版本号 👈
- 编辑
core/cli/lib/index.js
文件内的 checkGlobalUpdate 方法,内容如下:
1 |
|
- 执行
xuven-cli-dev --debug
,会看到没有版本号更新的提示,因为我们当前的版本号就是最新版本,我们可以尝试将 checkGlobalUpdate 方法内的semver.gt
修改成semver.valid
测试输出结果:
Lerna脚手架搭建(十三):通用 npm API 模块封装
https://blog.xuven.xyz/post/NpmAPIModuleWrapper/