【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 install
和yarn 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
,请将其删除。
改为安装sass
和node-loader@7.1.0
yarn install
& yarn dev
这对我来说非常适合。
【讨论】:
你说的是生成项目,到目前为止还没有在 dev 中使用它。以上是关于【M1芯片Mac】Nuxt构建太慢的主要内容,如果未能解决你的问题,请参考以下文章
mac Big Sur 芯片m1上安装ps,窗口里没有扩展,用不了插件了怎么办?