Windows 64-bit with Unsupported runtime (83) For more information on which environments are suppor..

 之前在运行项目的时候将node和npm升级为较高版本,后来运行之前的老项目的时候就发生了如题的关于node-sass的报错,报错的字面意思是:“node-sass不支持当前64位Windows运行系统环境。”

in ./src/assets/css/common.scss

Syntax Error: Error: Node Sass does not yet support your current environment: Windows 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.14.1


 @ ./src/assets/css/common.scss 4:14-235 15:3-20:5 16:22-243
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://123.123.123.123:8099&sockPath=/sockjs-node (webpack)/hot/dev-server.js ./src/main.js

实际上根本的问题是node-sass和node版本不匹配

错误的解决方法:网上的解决方法一般就是原地卸载node-sass安装包然后再重新安装。(这个我试过了,没啥大用,该报错还是报错。当然你也可以先试试,万一呢/doge)

# 在 git命令行窗口
# 卸载依赖包
npm uninstall node-sass

# 完成后重新安装依赖
npm install node-sass@4.12.0

解决方法:

node-sass-npm网站中提到了关于版本匹配的问题,点击链接node-sass - npm

 找到这个表格寻找node版本对应的node-sass版本,例如我需要使用的node版本是12,对应的node-sass版本是4.12

1.将node版本切换至12.15.0

我使用的是nvm切换的node版本,这里附上一些常用的nvm命令

# 安装指定node版本
nvm install v12.15.0
# 运行指定node版本
nvm use v12.15.0
# 切换到最新的node版本
nvm use node
# 远程服务器上所有的可用版本
nvm ls-remote
# 给不同的版本号设置别名
nvm alias node_cms 14.15.0
# 使用该别名
nvm use node_cms
# 查看已安装node列表
nvm ls

2.下载对应node-sass版本

#可以直接install
npm install --save node-sass
#也可以
npm install node-sass@4.12.0

<think>我们面对的问题:Node Sass在Windows 64位系统上报告Unsupported runtime (93)错误。 原因分析:这个错误通常是因为node-sass版本与当前Node.js版本不兼容。每个node-sass版本都需要对应特定版本的Node.js运行时(具体对应关系可查node-sass官方文档)。错误中的93指的是Node.js的ABI版本号(与Node.js版本对应)。 解决方案: 方案1:降低Node.js版本(推荐) 查找node-sass版本所需的Node.js版本。例如,node-sass v7.0.0需要Node.js 14(ABI版本为83)或16(ABI版本为93?注意:实际上Node.js 16的ABI版本为93,但node-sass v7.0.0不支持Node.js 16,所以这里需要确认)。根据引用[2]中的经验,我们可以将Node.js版本降低到14(因为14的ABI版本是83,而16的ABI是93,但node-sass v7.0.0可能不支持93)。 具体步骤: 1. 卸载当前Node.js(如果使用nvm,则不需要卸载,可直接切换版本)。 2. 安装Node.js 14版本(推荐使用nvm-windows管理多个Node.js版本,方便切换)。 3. 重新安装项目依赖(删除node_modules和package-lock.json后运行`npm install`)。 方案2:升级node-sass(或迁移到sass) 如果项目允许,可以考虑将node-sass替换为sass(dart-sass),因为node-sass已被弃用。dart-sass不需要本地编译,因此不存在与Node.js版本的兼容问题。 步骤: 1. 卸载node-sass:`npm uninstall node-sass` 2. 安装sass:`npm install sass --save-dev` 3. 修改代码中所有引用node-sass的地方为sass(通常不需要修改,因为scss部分语法兼容,但API调用可能不同,需检查)。 方案3:重新构建node-sass(适用于特定情况) 如果必须使用node-sass,且不想降级Node.js,可以尝试重新构建node-sass: 1. 删除node_modules目录 2. 确保安装了正确的node-sass版本(查看package.json) 3. 运行`npm install --force` 或 `npm rebuild node-sass` 但是,如果当前Node.js版本过高(比如17、18)而node-sass没有对应的二进制文件,则重新构建可能失败。 根据引用[1][2]的经验,降级Node.js版本是最直接有效的方法。 详细步骤(使用nvm管理Node.js版本): 1. 安装nvm-windows:https://github.com/coreybutler/nvm-windows/releases 2. 在命令行中执行: nvm install 14.17.0 # 安装Node.js 14.17.0(或14的最新版本) nvm use 14.17.0 # 切换到这个版本 3. 删除项目中的node_modules和package-lock.json(或yarn.lock) 4. 重新运行`npm install` 验证:重新运行项目,查看是否还有同样的错误。 注意:如果项目中有其他依赖需要更高版本的Node.js,则降级可能会引发其他问题。此时,建议考虑方案2(迁移到sass)。 另外,如果错误提示中还包含node-sass版本与预期版本不匹配(如引用[2]中提到的“Node Sass version 7.0.0 is incompatible with ^4.0.0”),那么可能需要调整node-sass的版本号,或者在降低Node.js版本后,重新安装node-sass。 关于node-sass与Node.js版本的对应关系,可以参考以下表格(部分): | node-sass 版本 | Node.js 版本 | | -------------- | ------------ | | 4.x | Node.js 4, 6, 8, 10, 12 | | 5.x | Node.js 10, 12, 14 | | 6.x | Node.js 12, 14, 16 | | 7.x | 不支持Node.js 16(官方文档写支持Node.js 14,但实际7.0.0在Node.js 16上构建会失败)[^3] | 因此,对于node-sass 7.0.0,官方声明支持Node.js 14(ABI版本83),但并不支持16(93)。所以,当我们使用Node.js 16时就会报错“Unsupported runtime (93)”。 综上所述,解决方案推荐顺序: 1. 迁移到sass(方案2)是最佳选择,因为node-sass已经弃用。 2. 若必须使用node-sass,则降级Node.js到14(方案1)。 附加参考:如果降级Node.js后,出现node-sass版本不兼容(如项目要求node-sass版本是4.x,但安装的是7.0.0),则需要调整package.json中node-sass的版本为4.x,然后重新安装。 步骤: 1. 修改package.json,将node-sass版本改为"^4.0.0" 2. 运行`npm install` 3. 如果之前安装过7.0.0,可能需要先卸载:`npm uninstall node-sass` 总结:根据项目具体情况选择方案。 §§ 相关问题 §§ 1. 如何查看当前Node.js的ABI版本? 2. node-sass与dart-sass的主要区别是什么? 3. 如何安全卸载Node.js并清理残留文件? 4. 使用nvm管理Node.js版本时,如何设置默认版本? 5. 迁移node-sass到sass需要注意哪些API变更? </think>### 解决 Node Sass 在 Windows 64 位系统 "Unsupported runtime (93)" 问题 #### 📌 问题根源分析 错误 `Unsupported runtime (93)` 表示 **node-sass 版本与当前 Node.js 运行时版本不兼容**: - Node.js 版本:`18.x` 的 ABI 版本号为 `108`,`17.x` 为 `102`,`16.x` 为 `93` - node-sass 仅支持特定 ABI 版本 (例如:node-sass 7.x 最高兼容到 Node.js 16.x) #### ✅ 解决方案(三选一) --- ##### 方案一:降级 Node.js 至兼容版本(推荐) 1. **安装 Node.js 16.x** [官方下载链接](https://nodejs.org/download/release/v16.20.2/) 或使用版本管理工具: ```bash nvm install 16.20.2 # 使用 nvm 管理 nvm use 16.20.2 ``` 2. **清理并重装依赖**: ```bash rm -rf node_modules package-lock.json npm install ``` 3. **验证版本兼容性**: ```bash node -v # 应为 v16.x npm ls node-sass # 检查版本 ``` ##### 方案二:升级 node-sass 至兼容版本 1. **修改 package.json**: ```json "devDependencies": { "node-sass": "^9.0.0" // 支持 Node.js 18+ } ``` 2. **重装依赖**: ```bash npm install # 或强制重建 npm rebuild node-sass --force ``` > 💡 查看 [node-sass 版本兼容表](https://github.com/sass/node-sass#node-version-support-policy) ##### 方案三:迁移到 Dart Sass(彻底解决) ```bash npm uninstall node-sass # 卸载 node-sass npm install sass --save-dev # 安装 Dart Sass ``` - **代码兼容性**:Dart Sass 完全兼容 SCSS 语法[^1],无需修改代码 - **性能优势**:无需本地编译,跨平台支持更好 #### ️ 关键注意事项 1. **版本对应关系**: | node-sass 版本 | 支持的 Node.js 版本 | |----------------|---------------------| | 4.x | Node.js ≤ 14 | | 6.x | Node.js 12-16 | | 7.x | Node.js 14-16 | | 9.x+ | Node.js ≥ 18 | 2. **清除缓存**: ```bash npm cache clean --force # 避免旧版本缓存影响 ``` 3. **项目锁文件处理**: ```bash rm package-lock.json # 删除后重新生成 ``` #### 💻 验证修复效果 运行项目测试命令: ```bash npm run dev # 或项目启动命令 ``` 成功标志:不再出现 `Unsupported runtime (93)` 错误 --- ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值