记录一下安装node-sass的过程。这里不讨论CSS是不是编程语言,但它没有变量声明功能(反正我觉得它不是编程语言)。于是程序员们发明了CSS预处理器(css??preprocessor),这是一种特殊的编程语言,可以用你所知道的基本编程知识进行编程,然后转换成css文件。介绍一下主流的CSS预处理器有8种。今天我们介绍sass。它的官网,但是需要安装ruby。如果你不想安装ruby??,那么借助node安装node-sass。github主页是在deepinLinux15.5上安装的,因为node-sass会去github主页下载binding-node,然后去亚马逊下载,所以国内有些不可抗力无法下载。简单的进行下面的设置,因为都是新手,所以我就不写命令的形式了,直接在下面写内容即可。基本命令会用得太多。在主目录下创建一个.npmrc文件,添加sass_binary_site=https://npm.taobao.org/mirrors/node-sass/phantomjs_cdnurl=https://npm.taobao.org/mirrors/phantomjs/electron_mirror=https://npm.taobao.org/mirrors/electron/registry=https://registry.npm.taobao.org///顺序好像有影响,我一开始不是这个顺序的,后来改了稍后再说。要想安装成功,必须在主目录的.bashrc下添加exportSASS_BINARY_SITE="https://npm.taobao.org/mirrors/node-sass"。嗯,按理说可以用下面的命令安装正常,但是出了点问题。发生npmi-gnode-sass问题。出现第一个错误。我用了上面的命令,第一次报错。TheError显示是权限不够,果断用sudonpmi-gnode-sass,然后报错层出不穷。ctrl+c终止后,在node_modules中找到了node-sass,但是明显不能用。去github的issue搜索,大神们用npmrebulidnode-然而,sass的成功属于其他人。我试了下,又报错了,还是权限不够。我再次添加了sudo。嗯,又报错了。这个时候,我很生气,你说你没有权限,我给你加了权限又报错,死循环....没办法,生活还得继续,我又去stackoverflow和github上找了下,并在Troubleshootingofthenode-sassproject中发现了问题,以下是Linux部分Linux的官方文档如果您以root身份安装node-sass,或者使用sudo全局安装,则可能会发生这种情况。这是npm的一个安全特性。您应该始终避免将npm作为sudo运行,因为安装脚本可能是无意的恶意。请检查有关修复的npm文档。permi但是,如果必须,您可以通过在npminstall中使用--unsafe-perm标志来解决此错误,即$sudonpminstall--unsafe-perm-gnode-sass如果这没有解决您的问题,请打开一个我们的调试脚本的输出有问题。文档说:当你使用root角色或者使用sudo命令进行全局安装时,就会出现这个错误。(-该死的鸡,我刚刚全局安装了node-sass),但是人们说,这是npm的安全功能。(-你随便说什么),你应该永远避免使用sudo来执行npm,因为安装脚本会出现意想不到的致命错误(-真的意想不到,我以前是sudo安装模块,只是这次,但是你说的是怎么解决),请左转去npm的官方文档(——这是重点,解决方法在这里),如果你坚持要用sudo,就用下面的命令吧……....如果这些还是不能解决你的问题,请看我们的调试脚本里面的解决办法是新开一个issue(如果你还是报错和我的不一样,这里有很多解决办法)我们的调试脚本。好了,翻译完毕,我们进入npm第三章,看看Solved的内容。第三章写的很清楚。如何避免权限错误以下为文档原文。如果您在尝试全局安装软件包时看到EACCES错误,请阅读本章。如果您更改安装npm的目录,则可以避免此错误。为此,可以:使用版本管理器重新安装npm(推荐),或者手动更改npm的默认目录。它说:如果你尝试安装一个全局包并遇到权限错误,你应该阅读本章。如果你在安装npm时改变了npm目录,这个错误将被避免(-言外之意是如果你改变目录,可以避免无法操作/usr/local/下的内容,你或者你可以更改目录的权限chmod[mode]dir,效果应该是一样的,我没试过,官方也没有说),要做到这一点,要么使用版本管理工具重新安装npm(-官方推荐),要么手动更改npm的默认目录(我使用这个)。好了,翻译完毕。如果想用官方推荐的方法用版本管理工具重装npm,看文档第二章版本管理工具官方推荐使用nvm,我误安装了TJ大神(尤雨熙偶像)的一个n模块(如果您不知道如何使用它,您将升级它,这太尴尬了)并且如果您使用的是npm5.2或更高版本,请探索npx等工具来规避权限问题。如果你的npm版本在5.2以上,可以用npx(又尴尬了,我有npx,不知道怎么用。。。)还有一个很火的小猫纱,快3万星了(不过我没用...)嗯,前端世界很精彩。手动更改npm目录移动前备份您的计算机forward.为全局安装创建一个目录:mkdir~/.npm-global配置npm以使用新的目录路径:npmconfigsetprefix'~/.npm-global'打开或创建一个~/.profile文件并添加这一行:exportPATH=~/.npm-global/bin:$PATH回到命令行,更新你的系统变量:source~/.profile而不是步骤2-4,你可以使用相应的ENV变量(例如,如果你不t想修改~/.profile):nPM_CONFIG_PREFIX=~/.npm-global官方确实够详细,可以用。如果你不想麻烦,只需将NPM_CONFIG_PREFIX=~/.npm-global放在环境变量中即可。这个方法我试过了,但是建立的.npm-global隐藏的太深了,连ctrl+H都看不到,所以我采用了阮一峰大师的方法,方法就是用大师博客的方法或官方的。首先在主目录新建一个配置文件.npmrc,然后在文件中定义prefix变量到主目录prefix=/home/yourUsername/npm然后在主目录下新建一个npm子目录。mkdir~/npm之后,全局安装的模块会安装到这个子目录下,npm也会去~/npm/bin目录下寻找命令。最后,将此路径添加到.bash_profile文件(或.bashrc文件)中的PATH变量。exportPATH=~/npm/bin:$PATH这样搞完之后,全局卸载没用的node-sass,然后npmi-gnode-sass#卸载全局模块$npmuninstall[packagename]-global可惜老了目录没有删除成功,但是新建的目录可以用.......安装总结1.一定不要用sudo安装,先手动更改npm的目录2.更改.npmrc和.bashrc3。npmi-gnode-sass4。多学英语,多看文档,多用命令行。node-sass的简单使用及其用法和ruby的sass有一点小区别
