Nestjs错误导入“reflect-metadata”无法在模块外部使用导入语句

Dươ*_*uân 1 javascript node.js typeorm nestjs

现在我遇到了问题。当我添加多对多关系时,它不起作用。但之前是一对多关系。

  • 错误导入“reflect-metadata”无法在模块外部使用导入语句
  • 错误 ReferenceError: 导出未在 ES 模块范围中定义

我的拉取请求

用户实体.ts

@Entity({ name: 'users' })
export class User implements IUser {
  @PrimaryGeneratedColumn()
  id: string;

  @Column({ length: 25, nullable: true })
  name: string;

  @Column({ unique: true, length: 255 })
  email: string;

  @OneToMany(() => Message, (message) => message.user)
  messages?: Message[];

  @ManyToMany(() => Conversation, (conversations) => conversations.users)
  @JoinTable({
    name: 'user_conversation',
    joinColumn: { name: 'user_id', referencedColumnName: 'id' },
    inverseJoinColumn: { name: 'conversation_id' },
  })
  conversations: Conversation[];
}
Run Code Online (Sandbox Code Playgroud)

在文件conversation.entity.ts中

@Entity({ name: 'conversations' })
export class Conversation implements IConversation {
  @PrimaryGeneratedColumn()
  id: string;

  @Column({ name: 'title', nullable: true })
  title: string;

  @ManyToMany(() => User, (users) => users.conversations)
  @JoinTable({
    name: 'user_conversation',
    joinColumn: { name: 'conversation_id', referencedColumnName: 'id' },
    inverseJoinColumn: { name: 'user_id' },
  })
  users: User[];
}
Run Code Online (Sandbox Code Playgroud)

我的错误:

import "reflect-metadata";
SyntaxError: Cannot use import statement outside a module
    at wrapSafe (internal/modules/cjs/loader.js:1001:16) ....
Run Code Online (Sandbox Code Playgroud)

当我将"type": "module"添加到 package.json 时出现错误

ReferenceError: exports is not defined in ES module scope
This file is being treated as an ES module because it has a '.js' file extension and ....
Run Code Online (Sandbox Code Playgroud)

我尝试了很多方法都无法解决,请帮帮我。

小智 23

检查你的进口,它应该是import {...} from 'typeorm'. 避免从 进口'typeorm/browser'