【graphql-upload】在package.json中的导出问题解决方法

首先

由于需要上传文件,所以我需要使用multipart/form-data来接收请求,在此我使用了graphql-upload。然而,由于package.json中没有”main”导出,导致了导入错误的问题。以下是我调查的结果总结。

环境

graphql-upload 最新版(16.0.2)出现了一个问题。

根据 graphql-upload 的 README.md 中的要求,修改编译选项。

结论 – (Conclusion)

我使用了graphql-upload-minimal作为替代。这是基于graphql-upload的分支创建的,因此可以以类似的方式使用。

 

简单说,如果你还没有准备好接受启蒙,就继续使用@13版本 ? 或者使用graphql-upload-minimal包。

如果实际使用的话,只需要按照以下格式更改导入目标即可使用。我使用了NestJS,但如果在Node.js等中使用的话,只需重新解读语法,就能够得到类似的结果。

import { MiddlewareConsumer, Module } from '@nestjs/common'
import { AppController } from './app.controller'
import { PrismaModule } from './prisma/prisma.module'
import { GraphQLModule } from '@nestjs/graphql'
import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo'
import * as Process from 'process'
import * as path from 'path'
import { LoggerModule } from 'nestjs-pino'
import { ConfigModule } from '@nestjs/config'
import { AuthorModule } from './author/author.module'
import { AppService } from './app.service'
import configuration from './common/config/configuration'
import { graphqlUploadExpress } from 'graphql-upload-minimal'


@Module({
  imports: [
    LoggerModule.forRoot(),
    PrismaModule,
    ConfigModule.forRoot({
      isGlobal: true,
      load: [configuration],
    }),
    AuthorModule,
    GraphQLModule.forRoot<ApolloDriverConfig>({
      driver: ApolloDriver,
      autoSchemaFile: path.join(process.cwd(), 'src/graphql/schema.gql'),
      sortSchema: true,
    }),
    CustomJwtModule,
    Auth0Module,
  ],
  providers: [AppService],
  controllers: [AppController],
})
export class AppModule {
  configure(consumer: MiddlewareConsumer) {
    consumer.apply(graphqlUploadExpress()).forRoutes('graphql')
  }
bannerAds