C'è un modo per ridurre le attività / processi node.js in VS Code mentre è richiesto il dattiloscritto per più progetti?
Sto usando Visual Studio Code (VSCode) per un progetto più grande in cui abbiamo da 10 a 15 progetti sub git in un'area di lavoro.
Tutti questi progetti sono dattiloscritti quindi uso l' tasks.json
opzione + vscode Tasks: Manage Automatic Tasks in Folder
.
Ciò porta a processi da 10-15 nodi, ognuno dei quali utilizza circa l'1-4% di utilizzo della CPU. Sfortunatamente ho più spazi di lavoro aperti, quindi finisco per avere molti processi del nodo non solo consumano la mia memoria anche la mia CPU .
It heats up my pc and I want to know if this can be prevented.
Alcuni progetti cambio spesso (2-3) e alcuni sono sempre in master e non li tocco mai. Hai delle buone pratiche su come superare questo problema?
Il mio problema sullo schermo:

Il mio code --status
(snippet):
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
Il mio file 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"
]}
Finalmente il mio task.json (snippet)
{
"type": "typescript",
"tsconfig": "d-lib-hb/tsconfig.json",
"option": "watch",
"problemMatcher": [
"$tsc-watch"
],
"runOptions": {
"runOn": "folderOpen"
}
}
Risposte
Sebbene riduca così tanto la RAM | l'utilizzo della CPU, ma puoi anche ridurre la quantità di risorse utilizzate da vscode per progetti più grandi escludendo alcune delle cartelle / progetti non importanti e difficilmente toccati, ad esempio: node_modules, .vscode, git ecc ...
Leggi questo articolo medio su come farlo, ho scritto che ... Spero che ti aiuti anche un po '...
Rendi Visual Studio Code meno RAM e più veloce
Ho trovato una soluzione per sbaglio perché ho cercato di ridurre la quantità di attività, ma per quanto riguarda la riduzione dell'impatto di ciascuna attività?
Soluzione
Imposta la variabile d'ambiente
TSC_NONPOLLING_WATCHER="1"
Nel mio caso ho dovuto modificare .zprofile
tramite
export TSC_NONPOLLING_WATCHER="1"
La differenza è perfettamente spiegata qui: https://medium.com/@julioromano/writing-typescript-on-a-laptop-this-might-improve-your-battery-life-f503dd16f019
Potrei persino aiutare un'altra persona con lo stesso problema che aveva 2 anni fa: tsc-watch consuma TSC_NONPOLLING_WATCHER?
Tutto sommato sono davvero contento e il mio laptop è tranquillo e calmo (utilizzo 2-5% invece del 30%).