背景
运行一个 React 简历项目的时候,报错如下:
Failed to compile.
./src/App.scss (./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-5-1!./node_modules/postcss-loader/src??postcss!./node_modules/resolve-url-loader??ref--6-oneOf-5-3!./node_modules/sass-loader/dist/cjs.js??ref--6-oneOf-5-4!./src/App.scss)
Error: Node Sass does not yet support your current environment: OS X 64-bit with Unsupported runtime (93)
For more information on which environments are supported please see:
https://github.com/sass/node-sass/releases/tag/v4.13.1
原因
根据报错信息和提到的 node-sass v4.13.1 的发行说明,发现是因为 node 版本不匹配导致的:
node-sass v4.13.1
最高支持到node v13
- 我当前的环境是
node v16.13.1
解决
两种解决方案:
- 降低 node 版本
- 升级 node-sass 版本
降低 node 版本
使用 nvm 切换至与 node-sass 匹配的 node 版本:
# 偶数的 node 版本是 LTS 版本
nvm install 12
nvm use 12
备注:安装/切换的 node 的方式和具体版本号,根据你的实际情况决定,这个方案不需要改动项目依赖,比较灵活。
升级 node-sass 版本
以我当前使用的 LTS 版本 node v16.13.1
为例,查阅 node-sass 的近期的发行说明 ,找到匹配的 node-sass 版本:node-sass v6.0.0,从 v6.0.0 开始支持 node v16
- 先卸载旧版本 node-sass
- 安装与当前环境匹配的 node-sass
备注:安装新版本 node-sass 后相关的依赖可能需要一并升级,需要花一定的时间,适合需要持续维护的项目。