patch-minor-major

1. 使用环境变量控制版本更新类型
1.1. 步骤一:定义环境变量
1.1.1. 创建 .env 文件
在项目的根目录下创建一个名为 .env 的文件。这个文件用于存储环境变量。
1.1.2. 添加版本更新类型变量
在 .env 文件中添加如下内容:
VERSION_UPDATE_TYPE=patch
注释:VERSION_UPDATE_TYPE 是我们定义的环境变量,用于控制版本更新的类型。可以设置为 patch、minor 或 major。
1.2. 步骤二:安装必要的库
1.2.1. 安装 dotenv 库
dotenv 库用于加载 .env 文件中的环境变量。在项目根目录下运行以下命令:
npm install dotenv
1.2.2. 安装 semver 库
semver 库用于处理语义化版本。在项目根目录下运行以下命令:
npm install semver
1.3. 步骤三:编写代码
1.3.1. 加载环境变量
在项目的主文件(例如 index.js)中,添加以下代码来加载环境变量:
// 加载 .env 文件中的环境变量
require('dotenv').config();
1.3.2. 读取版本更新类型变量
添加以下代码来读取 VERSION_UPDATE_TYPE 变量:
// 读取环境变量 VERSION_UPDATE_TYPE
const versionUpdateType = process.env.VERSION_UPDATE_TYPE;
1.3.3. 根据环境变量执行版本更新
使用 semver 库来处理版本更新逻辑:
const semver = require('semver');
const currentVersion = '1.0.0'; // 假设当前版本是 1.0.0
let newVersion;
switch (versionUpdateType) {
case 'major':
newVersion = semver.inc(currentVersion, 'major');
break;
case 'minor':
newVersion = semver.inc(currentVersion, 'minor');
break;
case 'patch':
newVersion = semver.inc(currentVersion, 'patch');
break;
default:
console.error('Invalid version update type');
process.exit(1);
}
console.log(`Updated version: ${newVersion}`);
1.4. 完整代码示例
// 加载 .env 文件中的环境变量
require('dotenv').config();
// 读取环境变量 VERSION_UPDATE_TYPE
const versionUpdateType = process.env.VERSION_UPDATE_TYPE;
// 引入 semver 库
const semver = require('semver');
// 假设当前版本是 1.0.0
const currentVersion = '1.0.0';
let newVersion;
// 根据 VERSION_UPDATE_TYPE 执行相应的版本更新
switch (versionUpdateType) {
case 'major':
newVersion = semver.inc(currentVersion, 'major');
break;
case 'minor':
newVersion = semver.inc(currentVersion, 'minor');
break;
case 'patch':
newVersion = semver.inc(currentVersion, 'patch');
break;
default:
console.error('Invalid version update type');
process.exit(1);
}
console.log(`Updated version: ${newVersion}`);
1.5. 注意事项
1.5.1. 环境变量的安全性
确保 .env 文件不被提交到版本控制系统中。可以在 .gitignore 文件中添加 .env 以避免泄露敏感信息。
1.5.2. 环境变量的优先级
在不同环境中(如开发、测试、生产)正确设置这些变量,确保系统环境变量不会覆盖 .env 文件中的变量。
1.5.3. 版本控制策略
根据项目的需求,定义清晰的版本控制策略。通常,major 更新用于不兼容的 API 变更,minor 更新用于向下兼容的新功能,patch 更新用于向下兼容的错误修复。