You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Craft CMS项目执行npm i报错code1 sharp依赖安装失败如何解决?

问题根源
  • 项目依赖的gulp-favicons@2.4.0版本过老,其间接依赖的sharp@0.23.x系列不支持Node 16版本,编译时会触发C++语法不兼容报错
  • 降级Node时brew link不生效是因为系统默认Node路径优先级高于brew安装的node@14,或未执行强制link、添加环境变量操作
  • 本地的node-gyp@3.8.0版本过老,不支持Node 16的编译要求
可行解决方案

方案1:使用Node版本管理工具切换兼容版本(推荐,无需修改项目配置)

可以解决brew link不生效的问题,适配现有老项目的依赖配置:

  1. 先卸载brew安装的node@14避免路径冲突:brew uninstall node@14
  2. 安装常用的Node版本管理工具nvm,安装完成后重启终端生效
  3. 安装兼容的Node 14长期支持版本:nvm install 14.21.3
  4. 进入项目根目录执行nvm use 14,临时切换当前终端的Node版本为14;如果需要永久生效可在项目根目录新建.nvmrc文件,内容填写14.21.3,后续进入项目会自动切换对应版本
  5. 清理原有缓存重新安装依赖:
rm -rf node_modules package-lock.json
npm cache clean --force
npm i

方案2:升级项目依赖适配Node 16

如果不想切换Node版本,可以升级相关依赖解决兼容问题:

  1. 卸载老版本的gulp-favicons:npm uninstall gulp-favicons --save-dev
  2. 安装适配高版本Node的gulp-favicons:npm install gulp-favicons@latest --save-dev,新版本依赖的sharp已支持Node 16+
  3. 清理缓存重新安装依赖:
rm -rf node_modules package-lock.json
npm cache clean --force
npm i

注意:升级后如果gulp的favicon生成任务有API变动,需要对应调整gulpfile.js里的相关配置即可适配。

临时解决方案(无需使用favicon生成功能的场景)

如果当前开发阶段不需要用到favicon生成功能,可以选择以下任意一种方式跳过报错:

  • 安装依赖时添加忽略脚本参数:npm install --ignore-scripts
  • 在项目根目录新建.npmrc文件,添加配置sharp_binary_host=https://npmmirror.com/mirrors/sharp,使用预编译的sharp包跳过本地编译步骤

内容的提问来源于stack exchange,提问作者Michael Butler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 21:24:01