Angular项目运行tsuml2命令触发nomnoml库ParseError报错求助
解决思路
针对你在Angular项目中使用tsuml2 v0.10.0时遇到的nomnoml解析错误,以下是几个排查方向:
1. 终端对Glob模式的解析问题
你使用的Glob包含否定匹配规则,不同终端(如PowerShell、CMD、Git Bash)对这类模式的处理方式可能不同,导致tsuml2接收到错误的文件列表,进而生成无效的nomnoml语法。
- 尝试将Glob用单引号包裹:
tsuml2 --glob './src/**/!(*.d|*.spec).ts' - 若使用PowerShell,需要转义感叹号:
tsuml2 --glob "./src/**/`!(*.d|*.spec).ts"
2. 特定TypeScript文件导致的生成错误
tsuml2会解析TS文件生成nomnoml代码,如果你的项目中有包含复杂类型(如深层嵌套泛型、特殊语法)的文件,可能导致tsuml2生成缺少闭合括号的无效nomnoml。
- 缩小范围排查:先只解析单个目录,比如:
逐步扩大范围找到引发错误的文件,检查该文件中的复杂类型,临时简化后再尝试生成。tsuml2 --glob "./src/app/core/**/*.ts"
3. tsuml2版本bug
v0.10.0可能存在已知的生成nomnoml的bug,尝试更新到最新版本:
# 全局安装的情况 npm update tsuml2 -g # 本地开发依赖的情况 npm update tsuml2 --save-dev
4. nomnoml依赖版本问题
tsuml2 v0.10.0捆绑的nomnoml版本可能存在解析缺陷,可尝试强制升级nomnoml:
在package.json中添加:
"overrides": { "tsuml2": { "nomnoml": "^1.5.0" } }
然后执行npm install,重新运行tsuml2命令。
内容的提问来源于stack exchange,提问作者Eyeless Whim
相关产品推荐
相关产品推荐

