运行 vue-cli-service serve 时来自 Node.js 的高 CPU 使用率

Posted

技术标签:

【中文标题】运行 vue-cli-service serve 时来自 Node.js 的高 CPU 使用率【英文标题】:High CPU usage from Node.js when running vue-cli-service serve 【发布时间】:2019-11-08 03:19:47 【问题描述】:

当我运行使用vue-cli-service serve 的 npm 脚本时,Node 的 CPU 使用率远远超过 100%。 如何调试此问题?

我正在使用 Mac,通过 nvm 安装 Node。节点版本:10.16,npm 版本:6.9

【问题讨论】:

【参考方案1】:

在 MacOSX 上安装 fsevents 模块将有助于减少 CPU 使用率。

npm install fsevents -g

npm rebuild fsevents

【讨论】:

这对我来说解决了这个问题,但你能解释一下为什么吗?很高兴在一些背景下进行投票! 如果不使用 fsevents,@Ollywood Webpack 会因 CPU 使用率过高而受到影响。请参阅此 github 问题。 github.com/webpack/webpack/issues/701 起初这对我不起作用,因为在构建 node-gyp 时出错,因为我没有 XCode。通过xcode-select --install快速安装Xcode命令行工具后,安装了fsevents,高CPU使用率立即下降。 在迁移到 M1 机器后必须运行 npm rebuild fsevents【参考方案2】:

问题是由轮询选项引起的。

从 webpack 配置中的 watchOptions 中删除 poll: true - 为我解决了这个问题。

【讨论】:

从哪里删除它? 来自我的 webpack 配置中的 watchOptions。见webpack.js.org/configuration/watch/#watchoptions 就我而言,在 Win10 上 - 在文件 vue.config.js 中,它在 devServer -> watchOptions -> poll: true 中。将其设置为 false 移除 CPU 消耗(同时观看文件有效)。【参考方案3】:

我在 virtualbox 中使用 linux 用于开发目的,并且我有从 windows 主机到 linux 来宾的共享文件夹。我的 vue 项目存储在我的硬盘中并与 vbox 共享。

所以我必须在我的 vue.config.js 中使用 devServer: watchOptions: poll: true 才能进行热重载。这导致了 CPU 使用率过高的问题。

所以我把我的代码放在来宾硬盘中并设置 poll:false 并且问题已经消失了。

希望有人觉得这有帮助。

【讨论】:

以上是关于运行 vue-cli-service serve 时来自 Node.js 的高 CPU 使用率的主要内容,如果未能解决你的问题,请参考以下文章

运行 vue-cli-service serve 时来自 Node.js 的高 CPU 使用率

以编程方式启动 vue-cli-service serve 时控制 webpack 的详细程度

npm run serve 给出错误 sh: vue-cli-service: command not found in Vue Cli app

使用“vue-cli-service serve”时在哪里可以找到 outputdir 或 dist-files

npm启动vue-cli-service serve问题

Vue - 由于 webpack 版本(vue-cli-service、laravel-mix、webpack)导致 npm run serve 命令崩溃