执行npm run compile时出现TypeError的原因及解决方法(snabbdom 2.1.0)
错误成因及解决办法
成因
- TypeScript版本不兼容:snabbdom 2.1.0的构建逻辑依赖TypeScript的
versionMajorMinor属性,但当前安装的TypeScript版本(过新或过旧)不存在该属性,导致读取时触发Cannot read properties of undefined错误。 - 依赖安装异常:项目
node_modules中的typescript包损坏、缺失或安装不完整,导致loadTypescript.js无法正确读取TS版本信息。 - 全局与本地TS冲突:系统全局安装的TypeScript版本与项目本地依赖的TS版本不匹配,构建脚本错误调用了全局TS,引发属性缺失问题。
解决办法
- 重新安装依赖:
删除项目根目录下的node_modules文件夹和package-lock.json文件,执行npm install重新完整安装所有依赖,修复损坏的包。 - 指定兼容的TS版本:
查看snabbdom 2.1.0的package.json中devDependencies的TS版本范围,安装对应版本的TypeScript,例如:npm install typescript@^4.9 --save-dev - 强制使用本地TS:
修改package.json中的compile脚本,使用npx tsc代替直接调用tsc,确保使用项目本地安装的TS版本:"scripts": { "compile": "npx tsc" } - 检查构建脚本配置:
确认compile脚本未引入自定义的TS加载逻辑,避免错误加载非项目本地的TS模块。
内容的提问来源于stack exchange,提问作者Sherlick li
相关产品推荐
相关产品推荐

