Typescript moduleResolution是节点,但编译时和运行时不同
我有一个Node Express项目,我的Typescript moduleResolution是节点,但编译时和运行时不同,typescript,Typescript,我有一个Node Express项目,我的模块解决方案设置为节点。tsc能够无错误地解决和编译以下问题: app.ts包含: import { HttpError} from "myTypes"; export class HttpError { statusCode: number; message: string; constructor(status?: number, msg?: string) { this.statusCode = status; thi
模块解决方案
设置为节点
。tsc能够无错误地解决和编译以下问题:
app.ts
包含:
import { HttpError} from "myTypes";
export class HttpError {
statusCode: number;
message: string;
constructor(status?: number, msg?: string) {
this.statusCode = status;
this.message = msg;
}
tsconfig.js
具有:
"paths": {
"*": [
"node_modules/*",
"src/types/*"
]
}
文件夹结构为:
/src---types
| |--myTypes.ts
|
|----app.ts
outDir
文件夹在同一层次结构中具有相同的types
文件夹,并且myTypes.js
文件在其中
但是,在运行时,我遇到了一个找不到模块“myTypes”的错误。为什么会这样
PS:我希望使用非相对模块导入。如果我只使用“/types/myTypes”中的import{HttpError},效果很好代码>。但我想理解为什么上述方法不起作用
myTypes.ts
包含:
import { HttpError} from "myTypes";
export class HttpError {
statusCode: number;
message: string;
constructor(status?: number, msg?: string) {
this.statusCode = status;
this.message = msg;
}
}myTypes到底是什么?HttpError是如何使用的?myTypes只包含一个导出的类。我把它加进去了。我明白了。因此,导入是真实的,而不仅仅是一种类型。路径不会影响运行时。看见我建议使用与在原始节点中相同的方法。