如何修复 'Typescript "Type checking in progress..." taking too long'?

How to fix 'Typescript "Type checking in progress..." taking too long'?

每次我 运行 项目并在我的 Vuejs front-end app 中使用打字稿的文件中更改某些内容时,typescript/webpack 立即告诉编译成功,如:DONE Compiled successfully in 635ms但是类型检查需要很长时间才能判断是否有错误:No type errors found Version: typescript 3.9.6 Time: 41131ms 并且它将使用 high cpu usage 进行这种类型检查,我认为这对我的笔记本电脑来说是有害的,每天 8 小时发展中。

我试图在 tsconfig.json 中设置一些标志,正如文档所说 https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html:

    "incremental": true,
    "tsBuildInfoFile": "./buildcache/front-end",

但什么都没有改变,我也试过"watch":true,但都没有。所以我想知道我们应该如何解决打字稿类型检查的问题(检查时间太长且 cpu 使用率高)

更新

这是我的 tsconfig:

{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "strict": true,
    "jsx": "preserve",
    "importHelpers": true,
    "moduleResolution": "node",
    "allowJs": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "sourceMap": true,
    "baseUrl": ".",
    "types": [
      "webpack-env"
    ],
    "paths": {
      "@/*": [
        "src/*"
      ]
    },
    "lib": [
      "esnext",
      "dom",
      "dom.iterable",
      "scripthost"
    ]
  },
  "include": [
    "src/**/*.ts",
    "src/**/*.tsx",
    "src/**/*.vue",
    "tests/**/*.ts",
    "tests/**/*.tsx"
  ],
  "exclude": [
    "node_modules"
  ]
}

更新2

您可以将此 https://github.com/SeyyedKhandon/vuejs-persian-chat-scaffold 用作 reprex(克隆 typecheck 分支),正如您在这个简单的应用程序中看到的那样,类型检查需要 2 秒,这是不可接受的根本。与vue-composition-api plugin有关吗?

更新3

我发现 tsconfig.json 中有一个名为 "skipLibCheck": true 的标志,它会跳过 lib 类型检查,从而进行类型检查 2x faster。但还是不够好。

在这个问题上花了很多时间后,我决定升级 package.json,第一步我升级了 3 个包,包括 "@vue/composition-api": "^1.0.0-beta.3" -> "^1.0.0-beta.10" "sass-loader": "^7.1.0" -> "^9.0.3" "typescript": "~3.9.3", -> "~3.9.7",然后类型检查时间突然减少到 4s,这是非常有前途的。

所以,这就是我所做的:

1.use tsconfig.json 中的 "skipLibCheck": true 标志,它会跳过 lib 类型检查,这将使 type-checking 快 2 倍。

  1. 如果问题仍然存在->升级您的package.json

您可以使用 yarn upgrade-interactive --latest 但要小心破坏性更改(请阅读文档来解决您的问题,如果 sass-loader 升级时遇到问题,请阅读 )