在生产环境中使用Webpack构建项目时遇到架构类型错误。错误:启动时出错架构必须包含唯一命名得类型,但却包含多个名为得类型
这种情况仅在使用生产构建时发生,而开发构建工作正常。
这是我的解析器:
@Resolver()
export class UserResolver {
constructor(private readonly userService: UserService) {}
@Query(() => User)
public async getAll(@Parent() {id}): Promise<any> {
return await this.userService.findUsers(id);
}
@Mutation(() => ResponseMessage)
public async registerUser(@Args('registerUser') registerUser: RegisterUserInput): Promise<ResponseMessage> {
return await this.userService.register(registerUser);
}
@Mutation(() => User)
public async updateUser(@Args('updateUser') updateUser: UpdateUserInput): Promise<User> {
return await this.userService.update(updateUser);
}
}
删除@Mutation()
,只保留@Query
,这样就可以很好地编译并构建应用程序。我使用autoSchemaFile生成模式文件。
2条答案
按热度按时间iqxoj9l91#
我不知道为什么
minimize: true
不能在生产模式下为NestJS工作。irtuqstp2#
webpack的生产模式自动启用缩小。默认情况下,这会更改类和函数名。如果您正在使用NestJS GraphQL架构,这尤其是一个问题。
您可以调整nestjs webpack缩小配置,以使用TerserPlugin来配置缩小设置,从而保留函数和类名。
请参阅此处的文档
下面是
webpack.config.js
文件中为NestJS实现的一个示例。