You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否存在检测JS代码变更的事件以自动更新版本号?

自动检测JS代码变更并更新版本号的方案
  • 前端构建工具(首推)
    主流构建工具自带文件哈希与版本管理能力,完全不用手动维护版本号:

    • Webpack:在配置文件的output字段中给文件名加上[contenthash],示例:
      module.exports = {
        output: {
          filename: 'bundle.[contenthash].js'
        }
      };
      
      代码变更后,打包会生成带全新哈希值的文件,相当于自动更新了版本标识。如果需要同步更新package.json的version字段,可搭配webpack-shell-plugin-next插件,在打包完成后执行自定义Node脚本递增版本号。
    • Vite:默认打包会给输出文件添加哈希后缀,也可通过build.rollupOptions.output.entryFileNames自定义命名格式;在package.json的scripts中添加命令,比如:
      "scripts": {
        "build": "vite build && node update-version.js"
      }
      
      用简单的Node脚本读取并更新package.json的版本号。
  • Git钩子自动更新
    借助Git钩子,在代码提交时自动更新版本号:

    1. 安装standard-version工具:npm install standard-version --save-dev
    2. 在package.json中添加脚本:"release": "standard-version"
    3. 配置pre-commit或post-commit钩子,让每次代码提交前自动运行npm run release。工具会根据提交信息(如feat对应次版本递增、fix对应修订号递增)自动更新版本号,同时生成CHANGELOG文件。
  • 自定义文件监控脚本
    写个Node脚本监控JS文件变化,检测到修改就自动更新版本号:

    const fs = require('fs');
    const path = require('path');
    const packagePath = path.resolve(__dirname, 'package.json');
    
    // 获取当前版本号
    function getCurrentVersion() {
      const pkg = JSON.parse(fs.readFileSync(packagePath, 'utf8'));
      return pkg.version;
    }
    
    // 递增修订号,可按需修改为主版本/次版本递增逻辑
    function incrementVersion(version) {
      const [major, minor, patch] = version.split('.').map(Number);
      return `${major}.${minor}.${patch + 1}`;
    }
    
    // 监控src目录下的JS文件
    fs.watch('./src', { recursive: true }, (_, filename) => {
      if (filename?.endsWith('.js')) {
        const newVersion = incrementVersion(getCurrentVersion());
        const pkg = JSON.parse(fs.readFileSync(packagePath, 'utf8'));
        pkg.version = newVersion;
        fs.writeFileSync(packagePath, JSON.stringify(pkg, null, 2));
        console.log(`版本号已更新为:${newVersion}`);
      }
    });
    

    将脚本保存为watch-version.js,运行node watch-version.js即可实时监控文件变更并更新版本号。

内容的提问来源于stack exchange,提问作者Alex von B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 05:16:35