问题记录-前端开发闭坑(1)--安装node-sass失败的相关原因及解决方案
背景
本系列用于记录自己遇到的前端开发中的一些坑点,问题可大可小,问题之间不一定有先后关系,甚至不一定存在关联。
简评
由于网上已经有很多分析,此处仅简略描述错误原因及相应的解决方案;同时,由于部分情况并未遇到,因此更多的相关解决方案会放链接在文末,有需自取。
本人对 Node 相关技术还了解不多,如有问题,欢迎指正。
问题描述
开发环境(此处仅列出与问题相关的): NodeJS v16.14.2,npm 包管理器 v8.5.5,sass 预处理器
问题:通过 npm 安装 sass 相关依赖失败,依次是 node-sass 、sass-loader
场景1
错误原因:找不到 python 相关依赖
分析:node-sass 安装时需要从 github 上下载一个.node 文件,该文件用于编译二进制文件(相关原理尚未完全了解)
解决方案1:通过 npm 安装 python 相关环境(未验证)。
解决方案2:不想安装 python 的,可以更换为 cnpm 指令直接从淘宝镜像下载 node-sass,从而避开从 github 下载 .node文件。
npm install -g cnpm --registry=https://registry.npm.taobao.org (后面是注释,请不要复制)该指令用于安置 cnpm
cnpm install node-sass (后面是注释,请不要复制)该指令通过国内镜像安装插件
解决方案3:或者仍然通过 npm 安装 node-sass,但将 .node 文件的源更换为国内镜像
set SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/ && npm install node-sass
注意以上解决方案不适用出现错误原因2的情况,因此建议先确定不是原因2导致后,再尝试以上解决方案。
场景2
错误原因:node-sass 与 NodeJS 版本不兼容
分析:Node 是 JS 的运行环境,而 node-sass 只是一个插件,两者的维护方相互独立,因此很容易导致兼容性问题发生。安装前需要通过官方文档了解两者的兼容版本。此链接导向官方文档:https://github.com/sass/node-sass/releases
解决方案:根据 Node 版本找到对应兼容的 node-sass 版本,较新的版本基本都能顺利兼容,若还是有问题,可以尝试以下版本
NodeJS v16.14.2: node-sass v6.0.1,sass-loader ^10.2.0
一个建议:刚上手通过 Node 搭建项目时,建议通过脚手架创建模板项目,而不是从头开始创建,避免更多潜在的兼容性问题以及插件之间相互依赖产生的问题链。安装新的依赖前,先排除可能的兼容性问题。
更多原因与解决方案:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)