一个项目一直以来运行都是正常的,今天运行就突然报错了,错误如下:
错误大致意思就是node-sass安装失败!那么node-sass是何许大佬,看名字是sass有关,那么了解一下:
什么是Sass?
Sass是一种预处理器脚本语言,可以解释或编译成层叠样式表(CSS)。
Sass包含两种语法:较旧的语法使用缩进将代码块和换行符分隔为单独的规则;较新的语法SCSS使用像CSS这样的块格式。它使用大括号来表示代码块和分号来分隔块中的行。
缩进语法和SCSS文件传统上分别给出扩展名.sass和.scss
什么是Node-Sass?
Node-sass是一个库,它将Node.js绑定到LibSass(流行样式表预处理器Sass的C版本)。它允许用户以令人难以置信的速度将.scss文件本地编译为css,并通过连接中间件自动编译。
如何安装Node-sass?
鉴于国内的环境,node-sass实在是太难安装了,可以直接通过淘宝的npm镜像来安装。
1、安装cnpm(https://npm.taobao.org/)
npm install -g cnpm --registry=https://registry.npm.taobao.org
2、在项目文件夹下安装node-sass
cnpm install --save-dev node-sass
那么问题来了!我这什么都没动,就是一段时间没有运行而已,怎么今天就突然运行不起来了呢?后面根据错误提示找了下对应路径node_modules\node-sass\vendor\win32-x64-64\binding.node在
node-module中查找,发现只有一个\win32-x64-57\binding.node。版本不一样,那是什么原因造成的呢?细想了一下我现在的node环境
比以前高了两个版本是不是这个原因呢?我赶紧去试试。根据node -p "[process.platform, process.arch, process.versions.modules].join('-')" 获取当前node环境运行的平台版本,
原来是不同node版本造成的 ,那么我们就有了如下解决方案:
1、当然是降低node版本了,降低到报错信息中的版本。
2、不记得以前的node版本的话,那就升级到当前你最新的环境的版本,在https://github.com/sass/node-sass/releases中获取你想要的版本
如上图,我下载红框中的版本,替换到本地后,在npm rebuild node-sass完美解决报错!