如何修复'Typescript“正在进行类型检查......”花费太长时间'?
Posted
技术标签:
【中文标题】如何修复\'Typescript“正在进行类型检查......”花费太长时间\'?【英文标题】:How to fix 'Typescript "Type checking in progress..." taking too long'?如何修复'Typescript“正在进行类型检查......”花费太长时间'? 【发布时间】:2020-12-03 01:25:48 【问题描述】:每次我运行项目并更改使用 typescript 的 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
的标志,它跳过了进行类型检查2x faster
的lib 类型检查。但还是不够好。
【问题讨论】:
您可以尝试从类型检查中排除节点模块。 我已经用过了,问题不在于这个。 【参考方案1】:在这个问题上花了很多时间,我决定升级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.在 tsconfig.json
中使用 "skipLibCheck": true
标志,它会跳过库类型检查,这将使类型检查速度提高 2 倍。
-
如果问题仍然存在
->
升级你的package.json
您可以使用yarn upgrade-interactive --latest
,但要小心破坏性更改(阅读文档以解决您的问题,如果您有问题,请阅读https://***.com/a/62844942/12666332 进行 sass-loader 升级)
【讨论】:
以上是关于如何修复'Typescript“正在进行类型检查......”花费太长时间'?的主要内容,如果未能解决你的问题,请参考以下文章
typescript eventTarget dataset 如何修复报错?
使用 Vuex mapGetters 时如何修复 TypeScript 错误?
如何修复这个 typescript 和 graphql 错误?