【M1芯片Mac】Nuxt构建太慢

Posted

技术标签:

【中文标题】【M1芯片Mac】Nuxt构建太慢【英文标题】:【M1 chip Mac】Nuxt build is too slow 【发布时间】:2021-11-02 11:48:10 【问题描述】:

我正在我的新 M1 芯片机器 (Mac) 上为 Nuxt 项目开发环境。 问题是 Nuxt 项目的构建速度太慢了。

我将 nodeenv 安装到我的项目中,并使用 v12.9.0。在项目文件夹中,使用的包maneger(npm / yarn)在/Users/username/.nodenv/shims/node

我运行yarn installyarn dev后,编译(客户端加服务器)大约需要2个小时。

如果我在我的 Intel 机器 (Mac) 中运行 yarn dev,构建只需几秒钟。

如果您对隔离问题的步骤有任何想法,请教我。 谢谢,

【我的方法】

删除node_modules并由yarn install重新安装。 重启我的机器 简单的 nuxt 项目运行方式与 Intel 机器上的一样

【环境】

M1芯片机 nodenv(自制) nuxt / vue 项目

【模块】 我的 package.json 就是这个,

"dependencies": 
    "@nuxt/typescript-runtime": "^0.4.0",
    "@nuxtjs/axios": "^5.9.5",
    "@nuxtjs/dotenv": "^1.4.1",
    "@nuxtjs/google-gtag": "^1.0.4",
    "@nuxtjs/gtm": "^2.4.0",
    "@nuxtjs/pwa": "^3.0.0-0",
    "@nuxtjs/style-resources": "^1.0.0",
    "@types/highlight.js": "^9.12.3",
    "@types/quill": "^2.0.3",
    "autolinker": "^3.13.0",
    "blob-util": "^2.0.2",
    "camelcase-keys": "^6.2.1",
    "cross-env": "^7.0.2",
    "crypto-js": "^4.0.0",
    "express": "^4.17.1",
    "highlight.js": "^9.18.1",
    "js-cookie": "^2.2.1",
    "npm-check-updates": "^4.0.6",
    "nuxt": "^2.12.1",
    "nuxt-basic-auth-module": "^1.3.2",
    "nuxt-clipboard2": "^0.2.1",
    "parchment": "^2.0.0-dev.2",
    "pm2": "^4.2.3",
    "quill-image-drop-and-paste": "^1.0.4",
    "sanitize-html": "^1.22.1",
    "snakecase-keys": "^3.1.2",
    "vue-infinite-loading": "^2.4.5",
    "vue-property-decorator": "^8.4.1",
    "vue-sanitize": "^0.2.0",
    "vue-scrollto": "^2.18.1",
    "vue-stripe-elements-plus": "^0.3.2",
    "vue-toc": "0.0.1",
    "vue-tweet-embed": "^2.4.0",
    "vue2-editor": "^2.10.2",
    "vuex-persistedstate": "^3.0.0"
  ,
  "devDependencies": 
    "@nuxt/typescript-build": "^0.6.0",
    "@nuxtjs/eslint-config": "^5.0.0",
    "@nuxtjs/eslint-config-typescript": "^5.0.0",
    "@nuxtjs/eslint-module": "^3.0.1",
    "@nuxtjs/moment": "^1.6.0",
    "@nuxtjs/vuetify": "^1.11.0",
    "@types/jest": "^25.1.4",
    "@typescript-eslint/eslint-plugin": "^2.25.0",
    "@typescript-eslint/parser": "^2.25.0",
    "@vue/test-utils": "^1.0.0-beta.29",
    "babel-core": "^7.0.0-bridge.0",
    "babel-eslint": "^10.1.0",
    "babel-jest": "^25.2.1",
    "eslint": "^7.14.0",
    "eslint-config-prettier": "^6.15.0",
    "eslint-plugin-nuxt": "^2.0.0",
    "eslint-plugin-prettier": "^3.1.4",
    "jest": "^25.2.1",
    "node-sass": "^4.13.1",
    "nodemon": "^2.0.2",
    "prettier": "^2.2.0",
    "sass-loader": "^8.0.2",
    "ts-jest": "^25.2.1",
    "vue-jest": "^3.0.5"
  

【问题讨论】:

您正在使用的某些模块(或其依赖项)可能没有预构建的 M1 二进制文件(对于具有本机代码的模块),因此它正在执行编译步骤。对于某些平台,包维护者可以将预构建的二进制文件上传到 NPM,但如果它们不存在,它将退回到源代码构建。如果没有更多细节,很难说哪些模块受到影响,但从安装日志中应该很容易分辨。 如果您已将其简化为纯粹的 nuxt-and-nothing-else 代码库(而不是 nuxt-and-lots-of-other-dependencies-too)并且您认为它在Apple 芯片与 Intel 芯片相比,与制造 nuxt 的人交谈,通过在 github.com/nuxt/nuxt.js/issues 上向他们报告这种行为,让他们意识到这个问题 @Joe 谢谢。我检查了安装日志,但没有发现任何奇怪的东西。我会检查次要的模块。(我附上了我的 package.json) 别告诉我,告诉制作 nuxt 的人,以便您的报告为所有人 帮助改进 nuxt,而不仅仅是为在 *** 上找到此问题的人。您发现了一个开源项目的潜在问题:将该问题报告给该开源项目的维护者,以便他们修复它。作为开源软件包的用户,这是您的责任的一部分。 所以,yarn dev 非常快。但是yarn generate 超级慢?不确定这是否与 Nuxt 本身有关。您是否在 nuxt.config.js 文件中生成了一些或一些路由?另外,你有它作为公共回购吗?我可以尝试在我这边运行它。 【参考方案1】:

正如预期的那样,Nuxt 没有实际问题。yarn dev 需要 12 秒,yarn build(因为target: server 是默认设置)只需要大约 7 秒。

到目前为止,您可能还有其他一些问题。

【讨论】:

【参考方案2】:

我自己解决了这个问题。

    使用版本节点16.0.0 如果使用node-sass,请将其删除。 改为安装sassnode-loader@7.1.0 yarn install & yarn dev

这对我来说非常适合。

【讨论】:

你说的是生成项目,到目前为止还没有在 dev 中使用它。

以上是关于【M1芯片Mac】Nuxt构建太慢的主要内容,如果未能解决你的问题,请参考以下文章

新买的mac 电脑m1芯片安装ps pr安装不了?

mac Big Sur 芯片m1上安装ps,窗口里没有扩展,用不了插件了怎么办?

mac m1芯片如何使用gpu

iOS逆向----Mac m1芯片检测

支持M1芯片Mac电脑的 Adobe Photoshop 2021 for Mac 中文版本

支持M1芯片Mac电脑的 Adobe Photoshop 2021 for Mac 中文版本