Mac M1 Pro环境下npm i安装puppeteer与node-sass失败求助
问题:Mac M1 Pro上Vue+Nuxt项目npm i安装puppeteer@8.0.0和node-sass@4.14.1失败
基本信息
- 环境:Vue+Nuxt,Mac M1 Pro,已使用项目要求的Node版本
- 现象:更换Mac后执行
npm i,两个依赖包安装失败:puppeteer@8.0.0、node-sass@4.14.1 - 报错内容:
puppeteer报错:
npm ERR! code ELIFECYCLE npm ERR! error 1 npm ERR! puppeteer@8.0.0 install:nodeinstall.jsnpm ERR! Exit status 1 npm ERR! npm ERR! Failed at the puppeteer@8.0.0 install script.node-sass报错:
npm ERR! code ELIFECYCLE npm ERR! error 1 npm ERR! node-sass@4.14.1 postinstall:node scripts/build.jsnpm ERR! Exit status 1 npm ERR! npm ERR! Failed at the node-sass@4.14.1 postinstall script. - 已尝试操作:删除package-lock.json与node_modules、清理npm缓存后重装;单独安装两个包;配置包含npm官方源及token的.npmrc文件;项目代码、依赖配置与同设备同事一致,GitHub权限相同
解决方案
针对puppeteer@8.0.0
puppeteer 8.x版本原生不支持Apple Silicon架构,可通过以下方式解决:
- 方式1:用Rosetta 2兼容模式运行终端
找到「终端」应用,右键选「显示简介」,勾选「使用Rosetta打开」,重启终端后重新执行npm i - 方式2:指定兼容的Chromium下载源
执行命令:PUPPETEER_DOWNLOAD_HOST=https://npm.taobao.org/mirrors npm i puppeteer@8.0.0
针对node-sass@4.14.1
node-sass 4.x版本完全不支持Apple Silicon,推荐以下解决方案:
- 方式1:Rosetta 2兼容模式运行终端后安装(步骤同puppeteer方式1)
- 方式2:直接以x86架构运行npm
执行命令:arch -x86_64 npm i - 方式3:替换为dart-sass(长期稳定方案)
- 卸载node-sass:
npm uninstall node-sass - 安装dart-sass:
npm install sass - Nuxt项目中修改配置:在
nuxt.config.js里将loaders.sass.implementation设置为require('sass')
- 卸载node-sass:
内容的提问来源于stack exchange,提问作者malditobajista
相关产品推荐
相关产品推荐

