本文主要是介绍【electron-vue】进程无法杀死导致任务管理器资源飙升,电脑卡死的情况(改良版),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前景:同一个electron-vue项目,别人的电脑不会,而我编辑代码ctrl+s几下,后台8、9个进程,CPU 100%。
解决:(不想知道过程的,直接拉到最后,看最终修改的代码)
1、参考【Electron-Vue 】进程无法杀死导致任务管理器资源飙升,电脑卡死的情况。
作为elctron-vue菜鸟,配置一窍不通,好不容易搜到这个文章,复制拷贝,运行ctrl+s报错。
exec(`TASKKILL /F /IM electron.exe`, function (err, data) {
^ReferenceError: exec is not defined
at Watching.compiler.watch [as handler] (E:\electronTest\loginnew\.electron-vue\dev-runner.js:103:9)
at compiler.hooks.done.callAsync (E:\electronTest\loginnew\node_modules\webpack\lib\Watching.js:99:9)
at AsyncSeriesHook.eval [as callAsync] (eval at create (E:\electronTest\loginnew\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:6:1)
at Watching._done (E:\electronTest\loginnew\node_modules\webpack\lib\Watching.js:98:28)
at compiler.emitRecords.err (E:\electronTest\loginnew\node_modules\webpack\lib\Watching.js:73:19)
at Compiler.emitRecords (E:\electronTest\loginnew\node_modules\webpack\lib\Compiler.js:499:39)
at compiler.emitAssets.err (E:\electronTest\loginnew\node_modules\webpack\lib\Watching.js:54:20)
at hooks.afterEmit.callAsync.err (E:\electronTest\loginnew\node_modules\webpack\lib\Compiler.js:485:14)
at AsyncSeriesHook.eval [as callAsync] (eval at create (E:\electronTest\loginnew\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:6:1)
at asyncLib.forEachLimit.err (E:\electronTest\loginnew\node_modules\webpack\lib\Compiler.js:482:27)
at E:\electronTest\loginnew\node_modules\neo-async\async.js:2818:7
at done (E:\electronTest\loginnew\node_modules\neo-async\async.js:3522:9)
2、一看这报错不就是我刚拷贝上的代码么。
参考:nodeJS exec does not work for “cd ” shell cmd
原作者的文章里少了:
var exec = require('child_process').exec;
3、但是!运行,ctrl+s,终端只有一句 kill pid: 27792 success!
我要的效果是:运行,ctrl+s,干掉多余的进程,重新运行。对比代码修改,发现最初的代码有个延时
setTimeout(() => {manualRestart = false}, 5000)
4、dev-runner.js 修改代码
if (electronProcess && electronProcess.kill) {manualRestart = trueconst pid = electronProcess.pidvar exec = require('child_process').exec;exec(`TASKKILL /F /IM electron.exe`, function (err, data) {if (err) console.log(err)else console.log('kill pid: ' + pid + ' success!')electronProcess = nullstartElectron()setTimeout(() => {manualRestart = false}, 5000)})}
这篇关于【electron-vue】进程无法杀死导致任务管理器资源飙升,电脑卡死的情况(改良版)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!