记录一下安装node-sass的过程.关于CSS是不是一门编程语言,这里不讨论,但是它没有变量 语句 函数(反正我觉得他不是编程语言).于是程序员们发明了CSS预处理器(css preprocessor),它是一种专门的编程语言,可以使用你会的基本的编程知识进行编程,然后再转化成css文件.
12月更新
本次重新安装node-sass
是因为电脑换了固态重装系统了,在新系统下很长时间内没有用过sass
,一切都是那个风平浪静,直到11月的最后一晚,想折腾一下博客,看到一个好看的主题,这个主题需要安装两个插件,其中有一个需要node-sass
的加持。
$ git clone https://github.com/tufu9441/maupassant-hexo.git themes/maupassant
$ npm install hexo-renderer-pug --save
$ npm install hexo-renderer-sass --save #就是这货
不出意外的,国内不采取特殊途径,hexo-renderer-sass
安装报错,根据log日志
,很容易的发现,他需node-sass@4.10.0
支持,但是下载失败。
解决方案1:先在global
下安装node-sass
- 重装后我全是采用的
nvm
管理的node
版本,所有的包都在.nvm
目录下,避免权限不够的错误(或者采取分割线以下的阮一峰老师的方法避免包权限的问题)。
- 配置
.npmrc
,先touch ~/.npmrc
。这次直接采取node-sass
的官方推荐的方式,npm install -g mirror-config-china --registry=http://registry.npm.taobao.org
,所有的国内有问题的包全都避免了。
- 结果竟然无法下载,
log日志
提醒我可能是代理的问题,可能是我的FQ
的系统代理有问题,去控制台一看,果然SOCKETS 有个错误
,尝试使用npm
添加代理的方式,均告失败,毕竟以后也不能总靠代理过日子,这个方式不可取。这次想找个一劳永逸的方式彻底解决这个垃圾问题。
- 终于发现了,直接使用下载好的
Realease
包去安装,先去node-sass主页下载系统需要的类型,这个完全可以解决系统不同的问题,很具用普适性。
- 到底你的系统需要那个具体的包呢,这个就是最关键的了,我的方式是:先安装,失败后会提示你
哪个版本的node包
无法下载,这个时候再去下载这个包。通过如下代码去安装:
npm i -g node-sass@4.9.3 --sass_binary_path=/home/wsl/Downloads/chromeDownloads/linux-x64-64_binding.node
# path需要替换成你系统的那个包名字
But
我以为下载成功了,就万事大吉了呢,发现我真是太天真了。安装完后第一件事就是检验安装的包能不能用,node-sass -v
一下,最不济出现个node-sass not found
这种类似的初级错误啊,结果报了个无语的错误。
这个目录是node-sass
规定的
为啥没有这个目录呢,因为通过 我采用的是设置本地下载路径,没有通过网上的下载。所以需要手动建立一个vendor
目录(issues里面通过npm rebulid node-sass可以解决,但是我没生效
),接着会报第二个新错误,这就很合理了,报错一点不可怕,能看懂并解决掉就很是进步。
新的错误是需要binding.node
文件,刚才建立的vendor
是个空目录所以找不到,在其内部建立二级目录,并把刚才下载的包改名为binding.node
,即vendor/linux-X64-64/binding.node
至此,本地安装node-sass
完毕,以后可以随便玩node-sass
了,管你能不能翻墙,能不能设置镜像。
- 本来以为全局安装完毕就可以在博客目录下直接安装
hexo-renderer-sass
,竟然还是报错。没办法,在newBlog
目录下又按照上述的方法安装了一个node-sass@4.10.0
,因为hexo-render-sass
需要4.10.0版本。最后终于成功了。
分割线以下为传统解决方法,尤其针对Linux用户
介绍
主流的CSS预处理器有8种,我们今天介绍sass
.它的官网,不过需要安装ruby.