一、前言 这里相对于之前就没那么麻烦了,通俗点说就是使用配置文件来管理多环境,实现环境的切换。 二、实现切换 1、增加开发和生产配置文件 在web的根目录下,创建开发环境切换配置文件.env.dev,
顺晟科技
2022-09-13 11:16:47
200
Mac开发Vue应用时,发现CPU风扇转的老高。
htop查看一下:
问题找到了,就是这个dev-server.js,node起的进程。
然后就是 dtruss -p 1230(进程ID) 命名跟踪一下这个进程,发现一直在读取应用下的每个js文件。
ps aux | grep node | grep -v grep | awk \'{print $2}\' | xargs sudo dtruss -p
然后借用同事的ubuntu系统,问题并没有出现。这让我一度很沮丧。
然后联想到是不是热更新出的问题,然后就是跟踪webpack源码,当然也是一无所获。
后面不知咋地,使用如下命令 竟然修复了CPU占有率高的问题:
npm install > fsevents@1.1.2 install /Users/phpdragon/SourceCode/phpdragon.com/front/node_modules/fsevents > node install [fsevents] Success: "/Users/phpdragon/SourceCode/phpdragon.com/front/node_modules/fsevents/lib/binding/Release/node-v57-darwin-x64/fse.node" already installed Pass --update-binary to reinstall or --build-from-source to recompile npm notice created a lockfile as package-lock.json. You should commit this file. added 115 packages in 5.919s
用git工具对比了一下,发现多增加了如下文件:
再重启应用
npm run dev
htop一下:
现在世界终于清静了!
同样的命令在window下执行:
$ npm install npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\chokidar\node_modules\fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
报当前系统不支持,类库只支持MacOS。
总结:
原因就是webpack的热更新用到了fsevent 类库,所以当找不到的时候,程序不会报错,但会不停扫描项目下的所有js文件。导致CPU使用率很高。
具体原因还得深入到webpack的源码进行查看了。
有句话说的好,喜欢就买、不喜就分、多喝热水、重启试试!
所以你没事就 npm install 试试,说不定就好了!雾
PS:
Webpack-源码
Native Access to Mac OS-X FSEvents
FSevents on Wiki
13
2022-09
13
2022-09
21
2021-10
25
2021-06
19
2021-06
19
2021-06