Lerna脚手架搭建(七):检查版本号功能开发

本文最后更新于:2024年12月10日 下午

一、开发步骤 👈

  1. 修改 core/lib/index.js 文件内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
'use strict';

module.exports = core;

const pkg = require('../package.json');

function core() {
checkPkgVersion();
}

function checkPkgVersion() {
console.log(pkg.version);
}

ℹ 提示

  • require 支持加载的文件类型:.js/.json/.node;
  • 加载 .js 文件时必须使用 module.exports/exports;
  • 加载 .json 文件时会使用 JSON.parse 返回对象;
  • 加载 .node 是加载 c++ 插件;
  • 如果非上述类型,将一律按 js 文件解析。
  1. 执行 xuven-cli-dev 命令,可看到输出当前版本号:1.0.4;

二、npmlog 封装 👈

测试

  1. 回到 xuven-cli-dev 目录,执行 lerna create @xuven-cli-dev/log;

  2. 将创建的 core/log 目录移动到根目录 utils 下;

  3. utils/log/lib/log.js 重命名为 utils/log/lib/index.js 并对应修改 utils/log/package.jsonmain 参数;

  4. xuven-cli-dev 目录下执行命令 lerna add npmlog utils/log/ 添加 npmlog 依赖;

  5. 编辑 utils/log/lib/index.js 内容如下:

1
2
3
4
5
6
7
8
9
'use strict';

module.exports = index;

const log = require('npmlog');

function index() {
log.info('cli', 'test');
}
  1. 编辑 core/cli/lib/index.js 内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'use strict';

module.exports = core;

const pkg = require('../package.json');
const log = require('@xuven-cli-dev/log');

function core() {
checkPkgVersion();
}

function checkPkgVersion() {
console.log(pkg.version);
log();
}
  1. 编辑 core/cli/package.json 的依赖项:

1
2
3
4
5
6
7
...
"dependencies": {
"@xuven-cli-dev/log": "file:../../utils/log",
"import-local": "^3.1.0",
"npmlog": "^6.0.1"
},
...
  1. 执行 xuven-cli-dev,发现报错,找不到模块 ‘@xuven-cli-dev/log’;

  2. 进入 core/cli 目录,执行 npm link

  3. 再次执行 xuven-cli-dev,成功打印 log(如果还是失败,可尝试在 core/cli 目录下,执行 npm i);

封装

  1. 编辑 utils/log/lib/index.js 内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
'use strict';

const log = require('npmlog');

log.level = process.env.LOG_LEVEL ? process.env.LOG_LEVEL : 'info'; // 判断 debug 模式

log.heading = 'xuven'; // 修改前缀
log.addLevel('success', 2000, {
fg: 'green',
bold: true
}); // 添加自定义命令

module.exports = log;
  1. 编辑 core/cli/lib/index.js 内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
'use strict';

module.exports = core;

const pkg = require('../package.json');
const log = require('@xuven-cli-dev/log');

function core() {
checkPkgVersion();
}

function checkPkgVersion() {
log.info('cli', pkg.version);
}
  1. 执行 xuven-cli-dev,成功打印信息:


Lerna脚手架搭建(七):检查版本号功能开发
https://blog.xuven.xyz/post/CheckVersion/
作者
Xuven Li
发布于
2022年4月12日
许可协议