npm install 报错及node-sass 安装报错 总结

第一种报错 npm install 提示python 环境未找到 及 node-sass build postinstall 失败

emmm 先说node-sass安装流程

  node-sass安装流程:
    1.检验本地node_modules中是否安装node-sass,版本是否一致
    2.如果未安装或版本不符,从npm源安装node-sass本体
    3.检测全局缓存和本地中是否有binding.node,如果有即跳过安装
    4.没有binding.node则从github下载该二进制文件并将其缓存到全局
    5.假如bingdin.node下载失败,则尝试本地编译出该文件
    6.将版本信息写入package-lock.json 实际上node-sass依赖了一个二进制文件binding.node,从npm源安装完本体后还会从github下载binding.node

node-sass安装报错原因

众所周知,node-sass 需要的二进制文件binding.node源被Google墙掉了。因此在 npm install 过程中 
    是下载不下来的 ,因此 node 为解决这个问题会在 下载node-sass时发现如果下载不下来 就会调用 
    node-gyp(这个是node自带的,它会提供C++编译)去创建
    binding.node并安装在项目的node_modules\node-sass\vendor\win32-x64-83(这个目录根据自己node版本来确定node-sass所需的二进制文件binding.node)\下
    而 node-gyp在编译过程中需要 python 环境支持 还有 MS 什么的、因此在你binding.node下载失败时  用
    node-gyp 安装binding.node 时  你未安装 python 、MS、、、时就会报python、MS  什么错

解决办法

第一种:
先删除之前项目安装的node-modules 然后运行

npm install --global --production windows-build-tools
(这行命令意思安装node-gyp 构建 binding.node 时所需的 工具 最终会安装到你的 C:\USER.windows-build-tools )【记得配python的环境变量】

安装完成后 重新 npm install(这方法处理的是node-sass所依赖国外的binding.node被墙的情况。我们用node-gyp自己去编译binding.node的方法安装node-sass)

第二种
你想最终的原因是node-sass所依赖的二进制文件binding.node未安装成功对吧,既然被墙掉那咋们就去看看国内的有没有,fine 有的! 国内的淘宝搞一个 奥利给!

npm install -g cnpm --registry=https://registry.npm.taobao.org
( 安装 cnpm 就是淘宝镜像源 )

cnpm i
(这个安装就会cdn到国内的npm源)

(这种方法是用国内镜像下载node-sass所依赖的二进制文件binding.node。而且这种方法安装速度也快特别推荐)

第三种

npm uninstall node-sass
(卸载之前的node-sass)

npm install --save-dev node-sass
(–save-dev自动将node-sass加入到 项目文件夹下的package.json中)

(这种方法是处理node-sass与node版本冲突的情况,你可以先卸载项目中的package.json中node-sass然后安装符合node版本的node-sass或者直接修改package.json中的node-sass版本使它向上兼容)

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值