Nuxt js开发环境中CPU使用率高

Posted

技术标签:

【中文标题】Nuxt js开发环境中CPU使用率高【英文标题】:Nuxt js high CPU usage in dev environment 【发布时间】:2020-09-06 16:13:14 【问题描述】:

由于更新很少,我在 docker 容器中的应用程序前端部分无法正常工作 它使用了 100% 以上的 Docker CPU,我的笔记本电脑 CPU 的 60/70%(风扇以 100% 运行) 而且 HMR 很慢

此问题不会出现在生产和其他笔记本电脑上

我在不同论坛尝试了很多类似问题的东西,但没有任何效果

我将 Docker 重置为出厂默认设置,允许更多内存和 CPU 我更新了我的依赖项 我删除并恢复了我的节点模块

我不知道我应该检查什么来解决这个问题

MacOS Catalina 10.15.4

Node v13.12.0

我的 package.json


  "name": "front",
  "version": "1.0.1",
  "description": "My first-class Nuxt.js project",
  "private": true,
  "scripts": 
    "dev": "nuxt",
    "build": "nuxt build",
    "start": "HOST=0.0.0.0 PORT=8080 nuxt start",
    "generate": "nuxt generate",
    "lint": "eslint --ext .js,.vue .",
    "precommit": "npm run lint"
  ,
  "config": 
    "nuxt": 
      "host": "0.0.0.0",
      "port": "8080"
    
  ,
  "dependencies": 
    "@fullcalendar/core": "^4.3.1",
    "@fullcalendar/daygrid": "^4.3.0",
    "@fullcalendar/interaction": "^4.3.0",
    "@fullcalendar/timegrid": "^4.3.0",
    "@fullcalendar/vue": "^4.3.1",
    "@nuxt/webpack": "^2.11.0",
    "@nuxtjs/auth": "^4.5.3",
    "@nuxtjs/axios": "^5.4.1",
    "@nuxtjs/google-analytics": "^2.2.0",
    "@nuxtjs/google-tag-manager": "^2.1.4",
    "@nuxtjs/gtm": "^2.2.3",
    "@nuxtjs/pwa": "^2.6.0",
    "@nuxtjs/robots": "^2.0.0",
    "@nuxtjs/router": "^1.3.2",
    "@nuxtjs/sitemap": "^0.2.2",
    "algoliasearch": "^4.1.0",
    "cross-env": "^5.2.0",
    "cxlt-vue2-toastr": "^1.1.0",
    "date-fns": "^1.30.1",
    "debug": "^4.1.1",
    "gsap": "^2.1.3",
    "jquery": "^3.4.1",
    "libphonenumber-js": "^1.7.14",
    "moment": "^2.24.0",
    "node-sass": "^4.13.1",
    "nuxt": "^2.11.0",
    "nuxt-facebook-pixel-module": "^1.3.0",
    "nuxt-google-maps-module": "^1.6.0",
    "nuxt-jsonld": "^1.4.5",
    "nuxt-token-auth": "^1.0.2",
    "nuxt-user-agent": "^1.2.2",
    "sass-loader": "^7.1.0",
    "vee-validate": "^2.2.0",
    "vue": "^2.6.11",
    "vue-gallery": "^2.0.0",
    "vue-i18n": "^8.10.0",
    "vue-infinite-scroll": "^2.0.2",
    "vue-instantsearch": "^2.7.0",
    "vue-js-modal": "^1.3.33",
    "vue-lazyload": "^1.2.6",
    "vue-mq": "^1.0.1",
    "vue-multiselect": "^2.1.6",
    "vue-read-more": "^1.1.1",
    "vue-scrollto": "^2.15.0",
    "vue-sticky": "^3.3.4",
    "vue-tawk": "^1.0.1",
    "vue-upload-component": "^2.8.20",
    "vue-wait": "^1.3.3",
    "vue2-dropzone": "^3.5.8",
    "vue2-leaflet": "^1.2.3",
    "vuedraggable": "^2.20.0",
    "vuejs-datepicker": "^1.5.4",
    "vuejs-paginate": "^2.1.0",
    "vueperslides": "^2.7.0"
  ,
  "devDependencies": 
    "babel-eslint": "^8.2.1",
    "eslint": "^5.16.0",
    "eslint-config-standard": "^12.0.0",
    "eslint-loader": "^2.1.2",
    "eslint-plugin-import": "^2.16.0",
    "eslint-plugin-node": "^8.0.1",
    "eslint-plugin-promise": "^4.0.1",
    "eslint-plugin-standard": "^4.0.0",
    "eslint-plugin-vue": "^4.7.1",
    "nodemon": "^1.18.10"
  

【问题讨论】:

在 Mac 的 Docker Desktop 上有带有主机目录绑定挂载的 known performance issues。对于基于浏览器的应用程序,安装原生 Node 可能比尝试使用 Docker 模拟原生开发环境效果更好。 【参考方案1】:

可能是 webpack 的 watch 模式有问题。 如here所述:

对于某些系统,查看多个文件系统可能会导致大量 CPU 或内存使用。可以排除像 node_modules 这样的巨大文件夹

module.exports = 
  //...
  watchOptions: 
    ignored: /node_modules/
  
;

在你的情况下(nuxt.js),只需添加到 nuxt.config.js

 watchers: 
    webpack: 
      ignored: /node_modules/
    
  

【讨论】:

谢谢,PC 风扇快把我逼疯了(声音很大)。 nuxt.js 选项拯救了我的一天

以上是关于Nuxt js开发环境中CPU使用率高的主要内容,如果未能解决你的问题,请参考以下文章

开发经验java服务生产环境CPU使用过高解决思路

Mongoose(node.js 模块)导致 CPU 使用率高

Mongoose(node.js 模块)导致 CPU 使用率高

Mongoose(node.js 模块)导致 CPU 使用率高

Mongoose(node.js 模块)导致 CPU 使用率高

Mongoose(node.js 模块)导致 CPU 使用率高