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

升级Node.js至10.5.0后执行./gradlew npm_run_build遇TS错误求助

解决方案

问题根源

编译错误核心是TypeScript版本过旧(2.9.2),与安装的最新@types/sinon、@types/xmldom包语法不兼容;同时存在依赖版本不匹配、冗余依赖问题:

  • @types/sinon用通配符*拉取最新版本,与sinon本体4.0.0完全不匹配
  • @types/xmldom指定0.1.x,但xmldom本体是0.6.0,类型定义与库版本脱节
  • TypeScript 2.9.2不支持新版本类型定义的语法特性
  • dependencies里的node包是冗余项,无需作为项目依赖安装

具体修复步骤

1. 修正依赖版本匹配

修改package.json中的依赖配置,锁定兼容的类型定义版本,升级TypeScript:

"devDependencies": {
  // 保留其他依赖,修改以下几项
  "@types/sinon": "^4.0.0", // 匹配sinon 4.0.0的类型定义
  "@types/xmldom": "^0.6.0", // 匹配xmldom 0.6.0的类型定义
  "typescript": "^3.9.10", // 升级到兼容旧语法且支持新类型定义的版本
  // ...
},
"dependencies": {
  // 删除"node": "^10.5.0",该包无需安装
  // ... 保留其他依赖
}

2. 修复tsconfig.json语法错误

files数组最后一个元素的多余逗号会触发旧TS版本报错,删除它:

{
  "compilerOptions": {
    "module": "CommonJS",
    "noImplicitAny": false,
    "sourceMap": true,
    "baseUrl": ".",
    "target": "ES6"
  },
  "files": [
    "./node_modules/marklogic-typescript-definitions/ts/index.d.ts" // 移除末尾逗号
  ],
  "include": [
    "./src/**/*.ts",
    "./src/custom.d.ts"
  ]
}

3. 重新安装依赖并构建

执行命令清理旧依赖,重新安装后构建:

rm -rf node_modules package-lock.json
./gradlew npm_install
./gradlew npm_run_build

额外建议

  • 避免依赖使用*通配符,锁定明确版本范围,防止拉取不兼容包
  • 定期同步TypeScript版本与类型定义、业务代码的兼容性,不要长期停留在过旧版本
  • Node.js版本升级后,优先检查npm包的版本匹配性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 17:40:04