错误:找不到模块“src/entities/Post”

Joh*_*ohn 6 javascript typescript mikro-orm typegraphql

所以我正在使用 type-graph 和 mikro-orm 创建一个 graphQL 服务器,一切都很好,直到我收到此错误,显示 => Error: Cannot find module 'src/entities/Post' 并且该模块存在,如您在这张图片中看到的那样: 文件夹结构

这就是终端中错误的样子:终端中的错误

顺便说一句,我正在使用名为 watch: "tsc -w" 的脚本将 typescript 转换为 javascript。

这是我的 postResolver 的代码示例:

import { Post } from './src/entities/Post';
import { MyContext } from 'src/types';
import {Ctx, Query, Resolver} from 'type-graphql';

@Resolver()
export class postResolver {
    @Query(()=> [Post])
    posts(@Ctx() {em}: MyContext) : Promise<Post[]>{
        return em.find(Post, {})
    }
}
Run Code Online (Sandbox Code Playgroud)
它说模块 ./src/entities/Post 在存在时不存在,我真的不知道为什么

小智 5

解决这个问题的最快方法是使用相对导入(import { Post } from '../entities/Post')而不是像你那样使用绝对导入。

满足节点继续使用绝对路径的另一种方法是将以下内容添加到 tsconfig 文件中。请注意,您需要为要导入的“src”级别的每个目录添加路径。

"compilerOptions": {
  "baseUrl": "src",
  "paths": {
     "src/*": ["src/*"],
     "entities/*": ["src/entities/*"],
     "resolvers/*": ["src/resolvers/*"]
     ...
  },
  ...
}
Run Code Online (Sandbox Code Playgroud)

或者你可以使用像这样安装到你的 devDependecies 中的包