几天以前,我决定开始启用一个CSS预处理器,找了很久,我选择了SASS并且尝试着去安装它。但是这似乎不是一件简单的事,在安装过程中出现了许多让我始料不及的问题,我很沮丧,但查找了很多资料,我终于找到了一个正确的安装它的方法。

因此在本文中,我将向你展示两件事:

  1. 怎样去安装Ruby,SASS和Compass样式框架
  2. 怎样去处理一些可能在安装过程中出现的常见问题

你可能已经去过《SASS的FAQ》页面,不过一般基本上都是说“当你需要安装并运行SASS时,请下载Ruby”。

在我看来,对于很多人来说,手册上给予的安装教程说明远远不够,这是我自己一步一步的安装过程,详细的记录下来,希望能帮助到你。

安装Ruby

第一步、点此进入Ruby Installer for Windows下载页面,下载Ruby的最新版。

第二步、运行安装下载的Ruby.exe文件,选择你的语言,接受条款协议,到这里都没有什么特别的地方。点击下一步屏幕会出现如下图的框,这一步很重要,主要就是要完成添加Ruby的可执行路径到你的环境变量里,再点击下一步完成安装。

第三步、打开命令提示符窗口,即DOS黑窗口。(这相信这个窗口你应该很熟悉)

第四步、到了这儿就差不多大功告成了,你只要检测一下你安装的Ruby是否运行正常,在黑窗口的提示符输入以下命令:

  1. ruby v
1.

如果你看到一行显示结果为“ruby x.x.x....”等版本平台信息,这意味着你的Ruby安装成功并正常运行了(如下图)。

如果你得到一个错误消息说“ruby没有被识别为内部或外部命令,操作或批处理文件” 你可能在安装过程中忽略了第2步的检查框。 那么请你卸载Ruby,再次运行安装,这一次一定要确保你检查了Ruby可执行文件添加到您的环境变量中。

(重新安装是最简单的方式来解决这个问题。 但是,如果你不想这样做,请看《如何手动添加ruby可执行文件到您的环境变量》 )。

安装SASS

第五步、现在就该安装你的CSS预处理器了,回到命令提示符窗口,并在窗口中输入以下命令:

因为墙的原因,你安装的过程中可能会报错,这个时候你需要停掉ruby默认源,更改为国内淘宝的源

  1. $ gem sources --remove https://rubygems.org/
  2. $ gem sources -a http://ruby.taobao.org/
  3. $ gem sources -l
  4. *** CURRENT SOURCES ***
  5.  
  6. http://ruby.taobao.org
  1. gem install sass
1.

这里等待30秒的样子,看到几条信息就成功安装了(如下图)。

第六步、检查你的SASS是否安装正常,输入以下命令:

  1. sass v
1.

不出意外的话,将会打印一行显示SASS的版本号。

安装Compass样式框架

第七步、安装Compass,就像安装SASS一样。

  1. gem install compass
1.

键入命令测试是否正常:

  1. compass -v
1.

如果直到安装到现在都没出现问题的话,说明你已经完成SASS的全部安装。

当你尝试着安装这些软件的时候,会出现许多你意想不到的错误,不要担心这个。安装任何的软件都不是那么顺心如意,比如经常会得到如下的错误信息:

Could not find a valid gem ‘sass’ (>= 0) in any repository.
Could not find a valid gem ‘compass (>= 0) in any repository.


者你出现的错误信息与这些都不相同,但不管怎样,当你遇到这些问题时,你的第一反应就是“google”或者“百度”,并且有着尝试修复一下。很糟糕的事
又来了,你对那些命令行一无所知,并且又没有现成的教程供你使用,“百度”、“google”又也查找不了有用的信息提供参考。

解决方案有两个:

    • 切换到另一条网络连接,再尝试重新安装一次
    • 如果安装还是不能通过,仍得到相同的错误结果,那么请你移步到《手动安装SASS和Compass样式框架》页面,这里有些好的建议,可能会解决你的问题。

先打开node.js的shell(打开cmd执行不了)

执行grunt  --version 即可查看grunt的版本

grunt 执行的更多相关文章

  1. Grunt-cli的执行过程以及Grunt加载原理

    通过本篇你可以了解到: 1 grunt-cli的执行原理 2 nodeJS中模块的加载过程 Grunt-cli原理 grunt-cli其实也是Node模块,它可以帮助我们在控制台中直接运行grunt命 ...

  2. grunt自定义任务——合并压缩css和js

    npm文档:www.npmjs.com grunt基础教程:http://www.gruntjs.net/docs/getting-started/ http://www.w3cplus.com/to ...

  3. 前端构建工具的用法—grunt、gulp、browserify、webpack

    随着前端项目的飞速发展,项目越来越大.文件越来越多,前端工程化的工具也越来越多.下面介绍目前最流行的四种构建工具——grunt.gulp.browserify.webpack 所有的构建工具都是基于N ...

  4. 折腾一两天,终于学会使用grunt压缩合并混淆JS脚本,小激动,特意记录一下+spm一点意外收获

    很长时间没有更新博客了,实在是太忙啦...0.0 ,以下的东西纯粹是记录,不是我原创,放到收藏夹还担心不够,这个以后常用,想来想去,还是放到这里吧,,丢不了..最后一句废话,网上搜集也好原创也罢,能解 ...

  5. 基于Grunt&Mocha 搭建Nodejs自动化单元测试框架(含代码覆盖率统计)

    Introduction Grunt 是一个基于任务的JavaScript 世界的构建工具 Mocha 是具有丰富特性的 JavaScript 测试框架,可以运行在 Node.js 和浏览器中,使得异 ...

  6. Grunt备忘录

    一.安装Grunt 应在全局环境下安装Grunt,以保障在任何目录下都能够正确找到grunt npm install grunt-cli -g 二.对已有Grunt基本目录结构文件进行操作 Grunt ...

  7. 前端开发 Grunt 之 Connect

    在前端开发过程中,我们需要在开发过程中,将开发中的站点部署到服务器上,然后,在浏览器中查看实际的效果,在 Grunt 环境下,可以直接使用集成在 Grunt 中的 Connect 插件完成站点服务器的 ...

  8. JavaScript构建(编绎)系统大比拼:Grunt vs. Gulp vs. NPM

    Nicolas Bevacqua进行了一个比较JavaScript构建(编绎)系统的任务.他对三巨头: Grunt, Gulp and NPM进行了比较,并讨论了每种的优缺点. By Nicolas ...

  9. 实战案例--Grunt构建Web程序

    GruntJS构建Web程序.使用Gruntjs来搭建一个前端项目,然后使用grunt合并,压缩JS文件,熟练了node.js安装和grunt.js安装后,接下来来实战一个案例,案例是根据snandy ...

随机推荐

  1. python中Url链接编码处理(urlencode,urldecode)

    做完了flask-web应用,这几天想用爬虫做个好玩的电影链接整合器,平时找电影都是在dytt或者dy2018之类的网站,在用dytt搜索电影<美国队长时>,发现他的搜索链接是这样的:ht ...

  2. hduoj-----(1068)Girls and Boys(二分匹配)

    Girls and Boys Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  3. Redis 学习资料整理

    菜鸟爬坑--Redis学习与探索(二):Redis的数据类型 http://www.cnblogs.com/codediary/archive/2015/02/20/redisstudy-2.html ...

  4. form表单提交过程

    本文为转载文章! 今天,我将站在HTML和单纯的Asp.net框架的角度来解释它们的工作方式,因此,本文不演示WebForms服务器控件的相关内容. 简单的表单,简单的处理方式 好了,让我们进入今天的 ...

  5. 点击每一个button,弹出相应的索引号

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. uva 11624(bfs)

    11624 - Fire! Time limit: 1.000 seconds Joe works in a maze. Unfortunately, portions of the maze hav ...

  7. poi 读取 excel (.xls) 97-2003

    1.sh.getLastRowNum() 比行数少1 private List<Map> getData(File file) throws Exception{ List<Map& ...

  8. WCF服务编程中使用SvcMap实现类型共享等技巧【转】

    原文链接:http://www.cr173.com/html/19026_1.html 国外的一篇文章:Sharing DataContracts between WCF Services 文中提到的 ...

  9. mongo .update

    db.classes.update({"count":{$gt:20}},{$set:{"name":"c4"}},false,false) ...

  10. Android利用ContentProviderOperation添加联系人

    Android添加联系人有两种方式: 1. 直接调用插入语句,先插入一个空Item,得到一个id,然后给这个id对应的插入其他信息,如姓名,号码,邮件等: 2. 利用ContentProviderOp ...