TypeGraphql graphql上传导入找不到

目标

我正在使用 TypeGraphql 制作一个项目,我想实现用户个人资料图片。

问题

当我尝试导入时:

import { GraphQLUpload, FileUpload } from "graphql-upload";

docker 容器日志返回:

src/resolvers/user.resolver.ts(25,43): error TS2307: Cannot find module 'graphql-upload' or its corresponding type declarations. `

配置

{
  "compilerOptions": {
    "target": "es2017",
    "module": "commonjs",
    "lib": ["dom", "es6", "es2017", "esnext.asynciterable"],
    "skipLibCheck": true,
    "sourceMap": true,
    "outDir": "./dist",
    "moduleResolution": "node",
    "removeComments": true,
    "noImplicitAny": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "noImplicitThis": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true,
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "resolveJsonModule": true,
    "baseUrl": "."
  },
  "exclude": ["node_modules"],
  "include": ["./src/**/*.ts"]
}

我试过的

我尝试安装旧版本,但没有帮助。

如果你能帮助我,我会很高兴。

谢谢你。

stack overflow TypeGraphql graphql upload import cannot be found
原文答案

答案:

作者头像

你能用这个代替吗

import { GraphQLUpload } from "graphql-upload/GraphQLUpload";
import { Upload } from "graphql-upload/Upload";
作者头像

像这样导入它:

import graphqlUploadExpress from "graphql-upload/graphqlUploadExpress.js"

并在 tsconfig.json 文件中添加这一行:

"compilerOptions": {
  "allowJs": true,
  "strict": false
}

允许您导入 javascript 模块,它适用于我

作者头像

最新的 graphql-upload 版本 16.0.0 不适用于node 16 打字稿。但是,降级到以前的版本 15.0.2 可以使用以下替换,

import GraphQLUpload from 'graphql-upload/GraphQLUpload.js';
import graphqlUploadExpress from 'graphql-upload/graphqlUploadExpress.js';
作者头像

学习 ESM 和 CJS。

我添加了

"module": "ESNext",
"moduleResolution": "node",

到我的 tsconfig.json。

import graphqlUploadExpress from 'graphql-upload/GraphQLUpload.mjs';

为我服务

  "type": "module",

到我的 package.json