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

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

一、获取当前 Node 版本号 👈

  1. 编辑 core/cli/lib/index.js 内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
'use strict';

module.exports = core;

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

function core() {
checkPkgVersion();
checkNodeVersion();
}

function checkNodeVersion() {
console.log(process.version);
}

function checkPkgVersion() {
log.info('cli', pkg.version);
}
  1. 执行 xuven-cli-dev 可看到当前 Node 版本号输出如下:

二、创建全局变量配置文件 👈

  1. core/cli/lib/ 目录下创建文件:const.js,内容如下:

1
2
3
4
5
const LOWEST_NODE_VERSION = '17.0.0';

module.exports = {
LOWEST_NODE_VERSION
}

三、对比最低版本号 👈

  1. xuven-cli-dev 目录下执行:lerna add semver core/cli/lerna add colors core/cli/ 安装 semver 和 colors 库;

  2. 编辑 core/cli/lib/index.js 文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
'use strict';

module.exports = core;

const semver = require('semver');
const colors = require('colors/safe');
const log = require('@xuven-cli-dev/log');

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

function core() {
try {
checkPkgVersion();
checkNodeVersion();
} catch (e) {
log.error(e.message);
}
}

function checkNodeVersion() {
const currentVersion = process.version;
const lowestVersion = constant.LOWEST_NODE_VERSION;
if (!semver.gte(currentVersion, lowestVersion)) {
throw new Error(colors.red(`xuven-cli-dev 需要安装 v${lowestVersion} 以上版本的 Node.js`));
}
}

function checkPkgVersion() {
log.info('cli', pkg.version);
}
  1. 执行 xuven-cli-dev 发现报错,找不到 @xuven-cli-dev/log 模块;

  2. 进入 core/cli 目录,执行 npm link (还是找不到模块可以尝试执行 npm i);

  3. 再次执行 xuven-cli-dev,输出信息如下:

  4. 编辑 core/cli/lib/const.js 文件内版本号参数,内容如下:

1
2
3
4
5
const LOWEST_NODE_VERSION = '14.0.0';

module.exports = {
LOWEST_NODE_VERSION
}
  1. 再次执行 xuven-cli-dev,输出信息如下:


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