前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >node-sass无法安装的各种解决方案 原

node-sass无法安装的各种解决方案 原

作者头像
随风溜达的向日葵
发布2018-08-15 11:25:00
1.9K0
发布2018-08-15 11:25:00
举报
文章被收录于专栏:技术墨客

使用react到现在,让人头疼的一个问题是安装node-sass。其实导致问题的根源在于安装过程需要下载一个binding.node文件,而因“你懂的”原因,访问不了这个地址。根据这个原因,总结了以下几个解决方案:

访问外国网站

这没什么好说的了,这是最轻松最彪悍的解决方案。只要能访问外国网站直接一个  npm i 命令就完事了,什么都不必去操心。至于怎么访问外国网站…………

使用cnpm

cnpm是一个强悍的工具,几乎能解决所有npm安装第三方包时遇到的问题。执行如下命令即可:

代码语言:javascript
复制
npm install
npm rm node-sass
cnpm install node-sass
npm install

但是我们在使用cnpm时也遇到了一个坑,在ubuntu14.04打出来的包运行报错,不用cnpm下载居然就不会有这问题,由于没有时间,没有详细去了解原因是什么。如果你是Windows开发而使用Linux环境打包或运行,可能会碰到这个问题。

下载后编译

实际上为了得到binding.node,是可以直接从github上把源码下载下来之后再编译出来的,node-sass自己也会这样做,但是编译要依赖其他工具。在各种发行版的linux下还好,几乎所有需要的环境(python等)都是预安装的,如果是root权限直接 upm install 就搞定了,所以有时候根本感觉不到这个问题。在windows下就得花时间根据install时的错误日志了解还要安装什么。

linux下遇到权限问题请执行:

代码语言:javascript
复制
npm i --unsafe -perm

附送一个最奇葩的坑

这是我用所有的开源工具遇到过最奇葩的坑。我将一个文件命名为“./dropDown.scss”,然后在linux(是ubuntu 14.04其他发行版没时间去测试,windows没这毛病)上用webpack打包,打包过程没有任何异常,但是放到服务器上运行打开某个页面就抛出无法找到"./dropDown.scss"的异常,然后node直接停机了········。我前后跟进了2天寻找问题的原因。最后突发奇想将文件名由dropDown.scss修改为pullDown.scss后一切都好了。我强烈的怀疑是某个临时工在node-sass里写了什么“硬编码”对字符串进行判断,发现“/drop[*]”这样的前缀进行一些特殊处理。在此记录下来。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/07/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 访问外国网站
  • 使用cnpm
  • 下载后编译
  • 附送一个最奇葩的坑
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档