首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行一个简单的快捷应用程序,带有ts-node-dev并获得错误: False表达式:传递给`ts.resolveTypeReferenceDirective`的非字符串值

运行一个简单的快捷应用程序,带有ts-node-dev并获得错误: False表达式:传递给`ts.resolveTypeReferenceDirective`的非字符串值
EN

Stack Overflow用户
提问于 2022-05-25 08:14:45
回答 6查看 7.4K关注 0票数 21

我对打字和表达都很陌生。我正在尝试使用ts-node-dev运行最简单的快递应用程序,但得到以下错误。

代码语言:javascript
复制
> ./node_modules/.bin/ts-node-dev src/index.ts                                                 16:07:40
[INFO] 16:07:42 ts-node-dev ver. 1.1.8 (using ts-node ver. 9.1.1, typescript ver. 4.7.2)
Compilation error in /home/lht/microservice/ticketing/auth/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> (/home/lht/microservice/ticketing/auth/src/index.ts:1:7)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Module._compile (/home/lht/microservice/ticketing/auth/node_modules/source-map-support/source-map-support.js:568:25)
    at Module.m._compile (/tmp/ts-node-dev-hook-8101223397369532.js:69:33)
    at Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at require.extensions.(anonymous function) (/tmp/ts-node-dev-hook-8101223397369532.js:71:20)
    at Object.nodeDevHook [as .ts] (/home/lht/microservice/ticketing/auth/node_modules/ts-node-dev/lib/hook.js:63:13)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
[ERROR] 16:07:42 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.

下面是我的index.ts文件。

代码语言:javascript
复制
import express from "express";
import { json } from "body-parser";

const app = express();
app.use(json());

app.listen(3000, () => {
  console.log("Listening on port 3000!");
});

这是我的package.json文件

代码语言:javascript
复制
{
  "name": "auth",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "ts-node src/index.ts"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {},
  "dependencies": {
    "@types/express": "^4.17.13",
    "@types/node": "^17.0.35",
    "express": "^4.18.1",
    "ts-node": "^10.8.0",
    "ts-node-dev": "^1.1.8",
    "typescript": "^4.7.2"
  }
}

我想知道我正在做的一些配置是否是错误的。提前谢谢。

EN

回答 6

Stack Overflow用户

发布于 2022-05-25 20:53:41

我是从一个新建的typeorm应用程序(npx create-express-typescript-application my-app -t typeorm)上碰到这个的。把ts-node撞到^10.8.0上解决了这个问题。

票数 6
EN

Stack Overflow用户

发布于 2022-05-25 14:34:05

我观察到,为什么除了一项服务外,其他服务都能正常工作。我发现,失败的服务被编译成不同的TS版本。在我更改TS版本之后

代码语言:javascript
复制
"typescript": "^4.6.3"

代码语言:javascript
复制
"typescript": "4.6.4"

这也解决了这个问题。

票数 5
EN

Stack Overflow用户

发布于 2022-05-30 03:01:28

一个快速而简单的解决方法是运行npm install typescript@latest ts-node@latest。问题可能是旧的ts-节点与最新的类型记录4.7.x版本不兼容,并升级它们解决了我的问题。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72374103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档