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

依赖问题:非字符串值传入ts.resolveTypeReferenceDirective报错求助

服务端TypeScript编译报错:Non-string value passed to ts.resolveTypeReferenceDirective

在simple-demo仓库开发时,客户端运行正常,但服务端执行yarn dev出现如下编译报错:

MacBook-Pro$ yarn dev
yarn run v1.22.19
warning ../../package.json: No license field
$ tsnd --respawn src/index.ts
[INFO] 20:34:49 ts-node-dev ver. 1.1.8 (using ts-node ver. 9.1.1, typescript ver. 4.9.3)
Compilation error in /Users/simple-demo-verifier/server/src/index.ts
Error: Debug Failure. False expression: Non-string value passed to `ts.resolveTypeReferenceDirective`, likely by a wrapping package working with an outdated `resolveTypeReferenceDirectives` signature. This is probably not a problem in TS itself.
    at Object.<anonymous> (/Users/simple-demo-verifier/server/src/index.ts:1:7)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Module._compile (/Users/Desktop/simple-demo-verifier/server/node_modules/source-map-support/source-map-support.js:568:25)
    at Module.m._compile (/private/var/folders/9z/40hxmprd3wq40xbpsyfsqq1r0000gn/T/ts-node-dev-hook-13839828883108773.js:69:33)
    at Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at require.extensions.<computed> (/private/var/folders/9z/40hxmprd3wq40xbpsyfsqq1r0000gn/T/ts-node-dev-hook-13839828883108773.js:71:20)
    at Object.nodeDevHook [as .ts] (/Users/simple-demo-verifier/server/node_modules/ts-node-dev/lib/hook.js:63:13)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
[ERROR] 20:34:49 Error: Debug Failure. False expression: Non-string value passed to `ts.resolveTypeReferenceDirective`, likely by a wrapping package working with an outdated `resolveTypeReferenceDirectives` signature. This is probably not a problem in TS itself.

已尝试清理node_modules、package-lock.json等文件,问题仍未解决。复现步骤:

  • 下载代码
  • 进入server目录
  • 执行npm install
  • 执行yarn install
  • 执行yarn dev

当前项目依赖列表(npm list结果):

├── @aries-framework/core@0.1.0-alpha.284
├── @aries-framework/node@0.1.0-alpha.284
├── @aries-framework/rest@0.9.4
├── cors@2.8.5
├── express@4.18.2
├── ngrok@4.3.3
├── ts-node-dev@1.1.8
├── ts-node@10.9.1
├── tslog@3.3.4
└── typescript@4.9.3

此前曾遇到依赖冲突,通过npm install --legacy-peer-deps解决了如下错误:

npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: server@1.0.0
npm ERR! Found: @aries-framework/core@0.1.0-alpha.284
npm ERR! node_modules/@aries-framework/core
npm ERR!   @aries-framework/core@"0.1.0-alpha.284" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer @aries-framework/core@"0.1.0-alpha.268" from @aries-framework/rest@0.1.2
npm ERR! node_modules/@aries-framework/rest
npm ERR!   @aries-framework/rest@"^0.1.2" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry

解决方案

这个报错的核心原因是ts-node-dev版本过旧(v1.1.8),与TypeScript 4.9.3的resolveTypeReferenceDirectives API签名不兼容,旧版本依赖的ts-node@9.1.1无法适配TS4.9+的类型解析逻辑。可按以下步骤解决:

  1. 升级ts-node-dev到兼容版本
    卸载旧版本并安装最新版:

    yarn remove ts-node-dev ts-node
    yarn add ts-node-dev ts-node --dev
    

    或用npm:

    npm uninstall ts-node-dev ts-node
    npm install ts-node-dev ts-node --save-dev
    
  2. 统一包管理工具
    避免混用npm和yarn,删除package-lock.json后仅用yarn执行安装:

    rm package-lock.json
    yarn install
    
  3. 验证tsconfig配置
    检查tsconfig.json的compilerOptions,确保没有错误的类型引用配置,示例:

    {
      "compilerOptions": {
        "typeRoots": ["node_modules/@types"],
        "resolveTypeReferenceDirectives": true
      }
    }
    
  4. 处理遗留依赖冲突
    若升级后仍有依赖问题,可继续用yarn install --legacy-peer-deps或npm install --legacy-peer-deps强制安装,确保@aries-framework系列依赖兼容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:25:41