VSCode 无法自动更新 package.json 版本号,需依赖 npm version 命令或自定义 Node 脚本;npm version 最安全标准,自动修改版本、提交并打 tag;自定义脚本更灵活但需手动处理 git add、权限校验及格式化写入;VSCode 中应通过 tasks.json 配置任务而非插件按钮触发;package-lock.json 不会自动更新,需额外执行 npm install --package-lock-only。

VSCode 本身不提供自动更新 package.json 版本号的能力,必须靠 Node 脚本 + 命令行触发,图形界面只是执行入口,核心逻辑在 JS 里。
用 npm version 命令最安全、最标准
这是 npm 内置命令,直接读写 package.json,自动加 Git commit 和 tag,语义化版本控制有保障。
-
npm version patch→ 将1.2.3变成1.2.4 -
npm version minor→1.2.3→1.3.0 -
npm version major→1.2.3→2.0.0 - 加
-m "chore: release %s"可自定义提交信息,%s会被替换成新版本号 - 它不会修改
node_modules或package-lock.json,只改版本字段和 Git
写自定义脚本(如 update-version.js)更灵活但要自己收尾
适合 CI/CD 场景或需要同步改多个文件(如 config、manifest)的项目。关键点是:别漏掉 git add 和权限校验。
- 用
fs.readFileSync('./package.json', 'utf8')读取,JSON.parse()后修改version字段 - 写回时用
JSON.stringify(obj, null, 2)保持缩进格式,否则 VSCode 可能报格式错误 - 必须手动调用
execSync('git add package.json'),否则 Git 不会跟踪变更 - 如果脚本由 GitHub Actions 运行,需提前配置
git config --global user.name和user.email,否则 commit 失败
VSCode 里怎么“一键”触发?别信右键菜单,用任务配置
VSCode 的「运行任务」比插件右键更可控,还能串联构建、测试等步骤。关键是把脚本注册为 tasks.json 里的可执行任务。
- 在
.vscode/tasks.json中定义一个 task,type: "shell",command: "npm run version:patch" - 对应
package.json里加 script:"version:patch": "npm version patch -m 'chore(release): %s'" - 按
Ctrl+Shift+P→ 「Tasks: Run Task」→ 选它,就能在终端里跑起来 - 避免用插件提供的“Update version”按钮——那些往往只改字符串,不 commit、不打 tag、不校验 Git 状态
真正容易被忽略的是:无论用 npm version 还是自定义脚本,package-lock.json 都不会自动重生成。如果后续要 npm ci 或部署,得明确跑一次 npm install --package-lock-only,否则锁文件和 package.json 版本可能错位。


















