背景
要在一个完全离线的环境下联调,涉及的改动比较多,而且该网络不能连接任何的usb设备,所以代码有问题希望能在完全离线的环境下直接修改。在安装了本地的cnpm server之后,遇到了node-sass安装问题,需要SASS Binary。本文主要介绍如何解决缺少这个Binary文件的问题。
(简书MarkDown编辑器不支持页面内跳转,这里没有传送门,解决方案在下面,前言可以略过)
前言
Less & SASS
现在前端的预处理语言,Less & SASS两家独大,而如何选择这个问题应该有很多人遇到过。虽然根据StackOverflow的统计数据,SASS的使用者明显更多,不过SASS上面有一个问题,编译SASS需要安装Ruby,而Ruby官网因为众所周知的原因在国内访问不了,因此仅仅就国内来说,很多人因此选择了Less。
其实他们俩区别真不大,主要的区别如下:
编译环境不一样
SASS安装需要Ruby环境;Less需要引入Less.js来处理。
变量符不一样, Less :
@
,SASS:$
。作用域其实也有点不同,Less是存在局部变量这么一说的,SASS则一直都是后面定义的变量会替换掉前面定义的,而不管前面那个变量定义的层级。
输出设置。
Less没有输出设置。SASS则可以配置输出设置:
nested
,compact
,compressed
,expanded
,默认nested
。SASS支持条件判断和循环语句,比如
ifelse
,for
等等。而Less不支持。这一点其实是比较重要的一点,权衡考量使用SASS还是Less,也就在这了。不过这个需求对我来说,一般来说没有或者没这么迫切,对大部分的业务需求来说应该也是吧。
所以该选择哪个?
其实没关系,如果你用Less那就继续Less,如果Antd用的比较多那用Less也可以少配置一个SASS loader。功能需求更多,那SASS会更适合你。
解决方案
从以下网址中寻找到对应平台的Binary文件:https://github.com/sass/node-sass/releases,比如Linux下:https://github.com/sass/node-sass/releases/download/v4.7.2/linux-x64-59_binding.node。
设置环境变量:
set SASS_BINARY_PATH=$fileLoactionOnYourDisk
- 然后正常的安装node-sass:
npm install node-sass
或者:
set SASS_BINARY_PATH=$fileLoactionOnYourDisk && npm install node-sass
网友评论