如何解决当多个项目需要打字稿时,是否有办法减少VS Code中的node.js任务/进程?
我正在使用Visual Studio Code(VSCode)进行较大的项目,在一个工作区中大约有10到15个子git项目。
所有这些项目都是Typescript,所以我使用tasks.json
+ vscode选项Tasks: Manage Automatic Tasks in Folder
。
这导致10-15个节点进程,每个进程使用大约1-4%的CPU使用率。不幸的是,我有多个工作空间开放,所以我最终有很多节点进程,不仅消耗了我的内存,而且还消耗了我的CPU 。
It heats up my pc and I want to know if this can be prevented.
有些项目我经常更改(2-3),有些项目总是掌握在我的手下,而我大麦却从未碰过它们。您是否有最佳实践来克服这个问题?
我的code --status
(摘要):
CPU % Mem MB PID Process
1 197 28044 code main
1 1114 28046 gpu-process
0 0 28048 utility
0 1442 28051 window (textarea.vue — d-reporting-vue-ws)
...
15 66 97382 electron_node cli.js
0 328 28391 extensionHost
0 66 30325 electron_node tsserver.js
0 721 30327 electron_node tsserver.js
0 66 30358 electron_node typingsInstaller.js typesMap.js
0 393 30361 /nvm/versions/node/v12.16.3/bin/node //.vscode/extensions/dbaeumer.vscode-eslint-2.1.8/server/out/eslintServer.js --node-ipc --clientProcessId=28391
0 0 97363 electron_node ms-vscode.js bundle.js
0 0 28947 watcherService
1 0 31594 node ...-reporting-ws/w-articleloader/node_modules/.bin/tsc -p ...-reporting-ws/w-articleloader/tsconfig.json --watch
2 0 31596 node ...-reporting-ws/w-api-redis/node_modules/.bin/tsc -p ...-reporting-ws/w-api-redis/tsconfig.json --watch
2 0 31598 node ...-reporting-ws/w-api-i18n/node_modules/.bin/tsc -p ...-reporting-ws/w-api-i18n/tsconfig.json --watch
2 0 31599 node ...-reporting-ws/w-api-elasticsearch/node_modules/.bin/tsc -p ...-reporting-ws/w-api-elasticsearch/tsconfig.json --watch
1 0 31600 node ...-reporting-ws/w-api-db/node_modules/.bin/tsc -p ...-reporting-ws/w-api-db/tsconfig.json --watch
4 0 31601 node ...-reporting-ws/d-lib-hb/node_modules/.bin/tsc -p ...-reporting-ws/d-lib-hb/tsconfig.json --watch
3 197 31603 node ...-reporting-ws/node_modules/.bin/tsc -p ...-reporting-ws/d-reporting-hb/tsconfig.json --watch
3 0 31604 node ...-reporting-ws/w-resource-manager/node_modules/.bin/tsc -p ...-reporting-ws/w-resource-manager/tsconfig.json --watch
1 0 31605 node ...-reporting-ws/w-logger-winston/node_modules/.bin/tsc -p ...-reporting-ws/w-logger-winston/tsconfig.json --watch
3 0 31607 node ...-reporting-ws/w-mailer/node_modules/.bin/tsc -p ...-reporting-ws/w-mailer/tsconfig.json --watch
2 0 31608 node ...-reporting-ws/w-core/node_modules/.bin/tsc -p ...-reporting-ws/w-core/tsconfig.json --watch
1 0 31609 node ...-reporting-ws/w-base-types/node_modules/.bin/tsc -p ...-reporting-ws/w-base-types/tsconfig.json --watch
2 0 31610 node ...-reporting-ws/w-fulfillment-lib/node_modules/.bin/tsc -p ...-reporting-ws/w-fulfillment-lib/tsconfig.json --watch
3 0 31612 node ...-reporting-ws/w-rm-type-pug/node_modules/.bin/tsc -p ...-reporting-ws/w-rm-type-pug/tsconfig.json --watch
2 0 31615 node ...-reporting-ws/w-database-abstraction-couchdb/node_modules/.bin/tsc -p ...-reporting-ws/w-database-abstraction-couchdb/tsconfig.json --watch
2 0 31737 node ...-reporting-ws/w6-compatibility/node_modules/.bin/tsc -p ...-reporting-ws/w6-compatibility/tsconfig.json --watch
1 0 31738 node ...-reporting-ws/w-number-group/node_modules/.bin/tsc -p ...-reporting-ws/w-number-group/tsconfig.json --watch
我的tsconfig
{
"compilerOptions": {
"target": "ES2016","module": "CommonJS","moduleResolution": "Node","resolveJsonModule": true,"esModuleInterop": true,"rootDir": "src","outDir": "./","sourceMap": true,"declaration": true,"strict": true,"noImplicitAny": true,"noImplicitReturns": true,"noUnusedLocals": true,"noUnusedParameters": true,"removeComments": true,"pretty": true,"forceConsistentCasingInFileNames": true,"allowJs": true,"baseUrl": ".","paths": {
"*": ["types/*"]
}
},"include": [
"src"
],"exclude": [
"node_modules"
]}
最后是我的task.json(摘要)
{
"type": "typescript","tsconfig": "d-lib-hb/tsconfig.json","option": "watch","problemMatcher": [
"$tsc-watch"
],"runOptions": {
"runOn": "folderOpen"
}
}
解决方法
尽管它减少了大量的RAM | CPU使用率,但是您还可以通过排除一些不重要且几乎不涉及的文件夹/项目来减少vscode用于较大项目的资源量,例如:node_modules,.vscode,git等...
阅读有关此操作的中篇文章,我写道...希望它对您有所帮助...
Make Visual Studio Code Less RAM Consuming & Faster
,我找到了一个意外的解决方案,因为我试图减少任务量,但是如何减少每个任务的影响呢?
解决方案
设置环境变量
TSC_NONPOLLING_WATCHER="1"
就我而言,我必须通过{p>
.zprofile
我什至可以帮助另一个两年前遇到同样问题的人: Does tsc-watch consume TSC_NONPOLLING_WATCHER?
总的来说,我真的很高兴,我的笔记本电脑也相当安静(使用率是2-5%,而不是30%)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。