Orocommerce社区版执行composer install安装失败,node-sass编译报错
问题根因
核心故障由node-sass版本与Node.js版本不兼容导致:
你当前使用的Node.js版本为v16.8.0,但Orocommerce社区版当前依赖的node-sass@4.14.1最高仅支持Node.js 14.x版本,高版本Node环境下无法完成node-sass的源码编译,因此触发gyp编译报错,最终导致资产安装脚本执行失败。
修复方案
提供三种可直接落地的解决方式,可根据自身场景选择:
方案一:降级Node.js到14.x LTS(最适配官方依赖要求,无后续兼容性风险)
卸载当前Node.js 16.x版本,安装Node.js 14.x LTS版本,完成后执行以下命令清理无效缓存:# 删除项目内已生成的无效前端依赖文件 rm -rf node_modules package-lock.json # 清理npm全局缓存 npm cache clean --force重新执行原安装命令即可:
composer install --prefer-dist --no-dev方案二:替换node-sass为dart-sass(无需降级Node版本)
node-sass已经停止维护,官方推荐使用纯JS实现的dart-sass作为替代,二者功能完全兼容:# 先安装dart-sass npm install sass --save-dev # 卸载不兼容的node-sass npm uninstall node-sass # 手动执行Orocommerce资产安装 php bin/console oro:assets:install --env=prod后续执行composer相关命令不会再触发该报错。
方案三:跳过前端资产安装(仅适合无需修改前端的后端开发场景)
执行composer安装时添加跳过脚本参数,不触发前端资产编译流程:composer install --prefer-dist --no-dev --no-scripts
后续需要前端资源时再单独执行资产安装命令即可。
内容的提问来源于stack exchange,提问作者Juan Carlos Alfonso Vergel
相关产品推荐
相关产品推荐

