如何解决“打字稿“正在进行类型检查...”,时间太长”的问题?

问题描述

每次我运行项目并在使用打字稿的Vuejs front-end app中的文件中更改内容时,打字稿/ webpack都会立即告诉编译成功,例如:DONE Compiled successfully in 635ms,但是类型检查将花费很长时间告诉您是否有错误或不喜欢:No type errors found Version: typescript 3.9.6 Time: 41131ms,它将使用high cpu usage进行这种类型的检查,我认为这对我每天8小时开发的笔记本电脑有害无益。

enter image description here

我试图在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"
  ]
}

Update2

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

Update3

我发现"skipLibCheck": true中有一个名为tsconfig.json的标志,它会跳过进行类型检查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 "skipLibCheck": true中的tsconfig.json标志,跳过lib类型检查,这会使类型检查快2倍。

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

您可以使用yarn upgrade-interactive --latest,但要注意避免更改(请阅读文档以解决您的问题,如果遇到问题,请阅读https://stackoverflow.com/a/62844942/12666332进行sass-loader升级)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...