安装node-sass时出现npm ERR! code 126执行格式错误求助
解决node-sass安装时的Exec format error错误(code 126)
错误原因
- 跨环境执行冲突:你当前是Windows系统(项目路径为
C:\Users\hix\Documents\GitHub\feedht),但安装命令调用了WSL(Windows子系统Linux)中的/usr/bin/node二进制文件,WSL的node与Windows系统架构不兼容,导致无法执行。 - 版本不兼容:node-sass对Node.js版本有严格依赖,若你安装的node-sass版本与当前Node.js版本不匹配,下载的预编译二进制包会与系统/Node环境不兼容,触发执行错误。
- 缓存损坏:npm或node-sass的缓存中存在损坏的二进制文件,导致安装时调用错误的执行文件。
解决方法
1. 统一执行环境
- 使用Windows原生环境:关闭WSL终端,打开PowerShell或命令提示符,进入项目目录重新执行
npm install。可通过where node命令确认当前使用的node路径应为Windows原生路径(如C:\Program Files\nodejs\node.exe),若PATH中优先出现WSL的node路径,需调整PATH顺序。 - 使用WSL环境:将项目复制到WSL的本地文件系统(如
/home/你的用户名/目录下),避免直接访问Windows的C盘路径,然后在WSL终端中执行npm install,消除跨文件系统的兼容性问题。
2. 匹配node-sass与Node.js版本
node-sass与Node.js的对应关系(部分核心版本):
- Node.js 16.x → node-sass 6.x
- Node.js 14.x → node-sass 4.14.x ~ 5.x
- Node.js 12.x → node-sass 4.12.x ~ 4.14.x
先执行node -v查看当前Node版本,修改package.json中node-sass的版本为对应兼容版本后重新安装;或直接卸载重装指定版本:
npm uninstall node-sass npm install node-sass@对应版本号
3. 清除缓存后重装
执行以下命令清除缓存并重新安装:
# 清除npm缓存 npm cache clean --force # 删除现有依赖包和锁文件 # Windows PowerShell使用:Remove-Item -Recurse -Force node_modules package-lock.json rm -rf node_modules package-lock.json # 重新安装 npm install
4. 手动指定二进制包源(可选)
若因网络问题导致下载的二进制包损坏,可指定国内镜像源安装:
npm install node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
内容的提问来源于stack exchange,提问作者hicham outaleb
相关产品推荐
相关产品推荐

