VS Code GUI提交代码报错TypeError: Cannot read properties of undefined (reading 'startsWith')
问题
通过VS Code Git提交GUI提交文件时触发Nx相关报错,但使用终端CLI提交一切正常,报错信息如下:
TypeError: Cannot read properties of undefined (reading 'startsWith') at calculateDefaultProjectName (c:\Users\USername\projectname\node_modules\nx\src\command-line\run-one.js:101:31) at parseRunOneOptions (c:\Users\Username\gprojectname\node_modules\nx\src\command-line\run-one.js:56:32) at Object.<anonymous> (c:\Users\Username\projectname\node_modules\nx\src\command-line\run-one.js:20:22) at Generator.next (<anonymous>) at fulfilled (c:\Users\Username\projectname\node_modules\tslib\tslib.js:164:62) at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
环境:Node.js 18.x

解决方案
这个问题核心是VS Code GUI的运行环境与终端环境不一致,导致Nx无法正确识别项目上下文,可按以下步骤排查解决:
统一VS Code启动环境
关闭当前VS Code窗口,从终端(PowerShell/CMD)中执行code .命令重新打开项目,确保VS Code继承终端的环境变量,再尝试提交。排查提交钩子配置
检查项目中的husky或其他Git提交钩子文件(如.husky/pre-commit),如果钩子中调用了Nx命令,可临时注释掉相关代码,先完成提交,再逐步排查钩子逻辑是否存在环境依赖问题。更新Nx版本
该报错是Nx内部函数尝试读取未定义值的startsWith方法导致,属于旧版本可能存在的bug。执行npm update nx或yarn upgrade nx更新到最新稳定版,再测试提交。校准VS Code Git配置
打开VS Code设置,搜索git.path,确保配置的Git路径与终端中使用的Git路径一致;同时可尝试禁用git.enableSmartCommit选项,排除GUI提交的特殊逻辑干扰。重置Nx项目配置
在终端执行nx init --force(注意提前备份现有配置文件),重新生成Nx项目配置,修复可能损坏的配置内容。
内容的提问来源于stack exchange,提问作者Dajlan Zaimaj
相关产品推荐
相关产品推荐

