M1芯片Mac运行Nuxt项目构建速度过慢问题排查求助
问题排查思路
1. 核心原因:Node版本架构不兼容
你当前使用的Node v12.9.0没有原生ARM64支持,在M1设备上是通过Rosetta 2转译运行的,转译本身会带来极大的性能开销,尤其涉及原生模块编译的场景会被无限放大。
可执行以下命令验证Node运行架构:node -p "process.arch"
如果输出为x64则说明当前Node是转译运行的,输出arm64才是原生ARM架构运行。
2. 原生依赖兼容问题
你的devDependencies中依赖了node-sass@4.13.1,该版本不仅早已停止维护,且完全没有提供M1架构的预编译二进制包,安装时会在本地执行全量编译,运行时也需要转译,是导致构建速度极慢的核心诱因之一。
3. 框架版本适配问题
你使用的Nuxt v2.12.1发布于2020年,早于M1芯片的发布时间,完全没有针对ARM64架构做适配优化,内部的webpack构建流程在转译环境下运行效率极低。
解决方案
- 升级Node版本到v16及以上的LTS版本,该版本开始原生支持M1 ARM64架构,安装前先执行
arch命令确认终端运行在arm64架构下,再通过nodenv安装对应版本,确保安装的是原生ARM版本的Node。 - 替换
node-sass依赖:将package.json中的node-sass: ^4.13.1替换为官方推荐的dart-sass对应的sass: ^1.58.0,同时将sass-loader升级到^10.1.1(和Nuxt 2.x兼容的版本),避免原生编译的开销。 - 升级Nuxt到2.x分支的最新LTS版本(v2.17.x),该版本已经适配M1架构,同时优化了大量构建性能问题。
- 清理缓存重装依赖:删除
node_modules目录和yarn.lock文件,重新执行yarn install安装依赖。 - 可在nuxt.config.js中开启构建优化配置:
build: { cache: true, parallel: true, hardSource: true }
内容的提问来源于stack exchange,提问作者batch
相关产品推荐
相关产品推荐

