每次我运行项目并在使用打字稿的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小时开发的笔记本电脑有害无益。
我试图在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
的库类型检查。但仍然不够好。
答案 0 :(得分:0)
花了很多时间解决这个问题之后,我决定升级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倍。
->
升级您的package.json
您可以使用yarn upgrade-interactive --latest
,但要注意避免更改(请阅读文档以解决您的问题,如果遇到问题,请阅读https://stackoverflow.com/a/62844942/12666332进行sass-loader升级)