升级Node版本执行项目构建时抛出node-sass错误的相关问题咨询
问题1:回退到旧版Node会产生问题
你在Node 12环境执行npm rebuild node-sass后,工具会删除原有适配Node 10的二进制绑定文件,替换为适配Node 12的版本。当你切回Node 10时,node-sass找不到对应环境的绑定文件,会再次抛出和当前完全一致的绑定缺失报错。
同时如果你在Node 12环境下完成了Next 11的构建,.next目录下的产物是高版本Next生成的,切回旧版Next 8后,旧版本运行时无法识别高版本构建产物,也会持续报build-manifest.json缺失的错误。
问题2:回退后需要执行对应修复步骤,逻辑和当前修复一致,需额外增加清缓存操作
- 首先执行
npm rebuild node-sass重新生成适配Node 10的二进制绑定文件 - 删除项目根目录下的
.next缓存目录,再重新启动开发服务/执行构建命令,旧版Next会自动生成对应版本的构建产物,即可解决build-manifest.json缺失的问题。
优化建议(可选)
如果你需要频繁切换Node版本处理新旧代码,可参考两个方案降低重复操作成本:
- 后续将项目依赖的
node-sass替换为官方推荐的sass(即dart-sass),该依赖为纯JS实现,无环境绑定问题,跨Node版本运行不会出现绑定缺失报错,且语法完全兼容node-sass - 每次切换Node版本前提前删除
node_modules目录,切换完成后重新执行npm install安装对应环境的依赖,兼容性比rebuild更好
内容的提问来源于stack exchange,提问作者Roman Nozhenko
相关产品推荐
相关产品推荐

