node-sass 依赖包无法安装的解决方法

1 问题描述

  • 重装 Node 后,重新启动项目,报错未找到 node-sass 模块

  • 试过各种 npm方法后依然无效,于是放弃安装

2 网上常见的解决方法

  • 使用 cnpmcnpm install node-sass --save(失败)

  • 指定镜像源:npm i node-sass --save --sass_binary_site=https://npm.taobao.org/mirrors/node-sass(失败)

  • 将依赖下载到本地,然后赋值到项目 node-modules 目录(未尝试)

3 最终解决方法

  • 使用 dart-sass 模块替代 node-sass

  • 命令行输入如下命令,安装 dart-sass 模块并重命名为 node-sass

    npm install node-sass@npm:dart-sass
    

4 分析原因

  • 原因一: npm源速度慢

    • 国内网络环境,从国内安装官方源的依赖包会很慢,
    • 解决方法是使用 cnpm
  • 原因二: binding.node源无法访问或速度慢

    • node-sass除了npm部分的代码,还会下载二进制文件binding.node,默认源是github,国内访问较慢,特殊时期甚至无法访问。
    • 解决方法是使用国内源,可通过.npmrc文件设置
  • 原因三: node版本与node-sass版本不兼容

    • node-sass版本兼容性并不好,老项目中依赖的node-sass很可能已经不兼容新的node
  • 原因四: 缓存中binding.node版本不一致

    • 本地node版本改了,或在不同机器上运行,node版本不一致
    • 按提示 npm rebuild node-sass 或清除缓存重新安装即可
  • 注:node-sass会尝试在本地编译binding.node,该过程就需要python

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值