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

执行git commit时nx format:write --uncommitted与eslint --fix无输出失败

解决Git Commit时nx format与ESLint任务崩溃问题

问题核心

执行git commit时,nx format:write --uncommitted因SIGSEGV(段错误)无输出失败,同时eslint --fix任务无响应终止;lint-staged流程跳过.lintstagedrc.json匹配检查,相关格式任务直接终止,最终提交回滚至原始状态。

排查与修复步骤

1. 单独测试命令定位问题源

脱离commit流程,单独执行命令确认问题触发点:

  • 执行nx format:write --uncommitted,观察是否直接崩溃,判断NX格式工具本身是否异常。
  • 执行eslint --fix {apps, libs}/**/*.{ts, tsx, js, jsx},检查ESLint能否正常运行,是否存在特定文件导致崩溃。

2. 清理缓存

  • 清理NX缓存:nx reset
  • 清理ESLint缓存:删除项目根目录下的.eslintcache文件,或执行eslint --clear-cache

3. 检查依赖版本兼容性

SIGSEGV多由底层依赖不兼容导致:

  • 确认Node.js版本符合项目要求(查看package.json的engines字段),用nvm/nvs切换到指定版本。
  • 确保@nx/*系列包与@nx/eslint-plugin等插件为同一大版本,避免跨版本混用。
  • 重新安装依赖:npm install或yarn install,修复可能的依赖损坏。

4. 排查单个文件的异常

若单独执行命令仅在包含特定文件时崩溃,说明该文件存在格式/语法问题:

  • 逐个检查暂存文件,手动修复明显的语法错误(如未闭合括号、无效TS类型)。
  • 对单个文件执行nx format:write <file-path>和eslint --fix <file-path>,定位出问题的文件。

5. 调整lint-staged配置

检查.lintstagedrc.json或package.json中的lint-staged配置:

  • 确认{apps, libs}/**/*.{ts, tsx, js, jsx}能匹配到暂存文件,避免路径错误导致任务无目标。
  • 暂时简化配置,比如只针对单个文件类型执行任务,逐步排查配置中的通配符或任务顺序问题。

6. 临时紧急提交(仅应急)

若需紧急提交代码,可临时跳过检查:

git commit --no-verify

注意:这是临时方案,后续必须修复根源问题

内容的提问来源于stack exchange,提问作者Bhavana

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 17:25:26