patch-minor-major

image

使用环境变量控制版本更新类型

1- 步骤一:定义环境变量

1.1- 创建 .env 文件:

在项目的根目录下创建一个名为 .env 的文件。这个文件用于存储环境变量。

1.2- 添加版本更新类型变量:

.env 文件中添加如下内容:

VERSION_UPDATE_TYPE=patch

注释:VERSION_UPDATE_TYPE 是我们定义的环境变量,用于控制版本更新的类型。可以设置为 patchminormajor

2- 步骤二:安装必要的库

2.1- 安装 dotenv 库:

dotenv 库用于加载 .env 文件中的环境变量。在项目根目录下运行以下命令:

npm install dotenv

2.2- 安装 semver 库:

semver 库用于处理语义化版本。在项目根目录下运行以下命令:

npm install semver

3- 步骤三:编写代码

3.1- 加载环境变量:

在项目的主文件(例如 index.js)中,添加以下代码来加载环境变量:

// 加载 .env 文件中的环境变量
require('dotenv').config();

3.2- 读取版本更新类型变量:

添加以下代码来读取 VERSION_UPDATE_TYPE 变量:

// 读取环境变量 VERSION_UPDATE_TYPE
const versionUpdateType = process.env.VERSION_UPDATE_TYPE;

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}`);

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}`);

5- 注意事项

5.1- 环境变量的安全性:

确保 .env 文件不被提交到版本控制系统中。可以在 .gitignore 文件中添加 .env 以避免泄露敏感信息。

5.2- 环境变量的优先级:

在不同环境中(如开发、测试、生产)正确设置这些变量,确保系统环境变量不会覆盖 .env 文件中的变量。

5.3- 版本控制策略:

根据项目的需求,定义清晰的版本控制策略。通常,major 更新用于不兼容的 API 变更,minor 更新用于向下兼容的新功能,patch 更新用于向下兼容的错误修复。