前言:

  1.sass编译为css文件,早先时刻写css,后来看了sass挺不错的,于是在新的项目中开始使用上了sass。(grunt需要ruby环境,所以需要先安装ruby,sass环境)

    ①安装ruby/安装sass

    ②编译sass文件(eg:style)

      sass style.scss style.css

    ③监控文件/文件夹的变化来自动编译sass文件

      sass --watch style.scss:style.css    #file

      sass --watch cssFilePath                        #directory(cssFilePath:sass文件的路径)

    注:

      sass编译风格:

      * nested:嵌套缩进的css代码,它是默认值。

      * expanded:没有缩进的、扩展的css代码。

      * compact:简洁格式的css代码。

      * compressed:压缩后的css代码。

  2.js文件之前没有做压缩处理,如果被发现了也是用站长工具压缩以下就使用了,操作流程略多了

  grunt是基于nodejs的,使用前需要安装以下nodejs,官网:nodejs.org,安装方法正常软件一样安装。nodejs的模块安装用的是npm管理的。

  1.安装nodejs

  2.新建一个grunt项目

    标准配置:

      package.json    #项目数据

      gruntFile.js        #配置grunt,设置任务,加载插件等

    注:文件怎么写稍后我们具体描述,先建两个文件,文件代码可以直接复制

  2.安装grunt

    npm install -g grunt-cli

<!--2014-09-13补充

    npm install grunt --save-dev

    注:通过grunt -v可以查看版本

-->

    注:安装 grunt-cli 并不等于安装了 Grunt 任务运行器!Grunt CLI 的任务是运行 Gruntfile 指定的 Grunt 版本。 这样就可以在一台电脑上同时安装多个版本的 Grunt。

  3.安装需要用到的grunt插件

    npm install grunt-contrib-sass grunt-contrib-uglify grunt-contrib-watch --save-dev

    注:--save-dev自动完善package.json

    grunt-contrib-sass    #sass编译插件
    grunt-contrib-uglify   #js压缩插件
    grunt-contrib-watch  #监控插件

  4.运行监控方法

    grunt watch

  第一次写技术文章,不正确/不详之处多多包含,有问题一起探讨。  

  packjson代码:

    

 {
"name": "ajaxTest",//项目名称
"description": "baiyuncms-wap-ajax",//项目描述
"version": "0.1.0",//项目版本
"private": true,//具体不明 stackoverflow上得到的答案是和版本控制相关 可选
"author": {
"name": "unofficial",
"email": "no@mail"
},//可选
"devDependencies": {
"grunt": "^0.4.5",
"grunt-contrib-sass": "^0.7.3",
"grunt-contrib-uglify": "^0.5.1",
"grunt-contrib-watch": "^0.6.1"
}//不明确版本可以使用*代替 使用--save-dev会自动填写版本 必须
}

  gruntFile.js

  

module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
skinPath: {
js:'AjaxTest/skin/js', //jsName byNewPage 14 15
css:'AjaxTest/skin/css' //cssName style 24 29
},//可选 不使用时具体配置文件涉及到的路径需要修改
uglify: {
options: {
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
},
build: {
src: '<%= skinPath.js %>/byNewPage.js',
dest: '<%= skinPath.js %>/byNewPage.min.js'
}
},//js压缩的配置文件
sass: { // Task
dist: { // Target
options: { // Target options
style: 'expanded'
},
files: { // Dictionary of files
'<%= skinPath.css %>/style.css': '<%= skinPath.css %>/style.scss' // 'destination': 'source'
}
}
},//sass编译的配置文件
watch: {
files: ['<%= uglify.build.src %>','<%= skinPath.css %>/style.scss'],
tasks: ['default']
}//监控的配置文件
});
// Load the plugin 加载插件
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-watch');
// Default task(s). 执行默认方法 grunt
grunt.registerTask('default', ['uglify','sass']);
};

常见错误分析:

Running "watch" task

Waiting...
>> File "index.cnblogs.scss" changed.
Running "sass:dist" (sass) task
Warning:
You need to have Ruby and Sass installed and in your PATH for this task to work.

More info: https://github.com/gruntjs/grunt-contrib-sass
Use --force to continue.

Aborted due to warnings.

原因说明:没有安装ruby环境,并且需要安装一下sass.

G:\wwws\unofficial.cnblogs.com>gem install sass
ERROR: While executing gem ... (Gem::RemoteSourceException)
HTTP Response 301

原因说明:ruby版本太低的原因,卸载已经安装的ruby版本,http://rubyinstaller.org/downloads/这里下载最新的ruby安装成功后,再执行安装sass命令即可!

ERROR: Could not find a valid gem 'sass' (>= 0) in any repository
ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)
Errno::ETIMEDOUT: A connection attempt failed because the connected party di
d not properly respond after a period of time, or established connection failed
because connected host has failed to respond. - connect(2) (http://rubygems.org/
latest_specs.4.8.gz)

原因说明:网络连接的原因

前端开发环境之GRUNT自动WATCH压缩JS文件与编译SASS文件环境下Ruby安装sass常见错误分析的更多相关文章

  1. 【前端】一句命令快速合并压缩 JS、CSS

    引用自:一句命令快速合并 JS.CSS 在项目开发环境下,我们会把 JS 代码尽可能模块化,方便管理和修改,这就避免不了会出现一个项目自身 JS 文件数量达到10个或者更多. 而项目上线后,会要求将所 ...

  2. GruntJs安装及使用入门(自定义grunt任务,合并压缩js、css)

    一.Grunt.js简介(实现自动化) 1)简要说明: 1.GruntJs是基于node的javascript命令行工具,可以自动化构建.测试.生成文档的项目管理工具: 2.使用GruntJs可以自动 ...

  3. 开箱即用 - Grunt合并和压缩 js,css 文件

    js,css 文件合并与压缩 Grunt 是前端自动化构建工具,类似webpack. 它究竟有多强悍,请看它的 介绍. 这里只演示如何用它的皮毛功能:文件合并与压缩. 首先说下js,css 合并与压缩 ...

  4. 《React+Redux前端开发实战》笔记3:基于Webpack构建的Hello World案例(下)

    2.使用React编码 下面正式开始使用React来编写前端代码. (1)npm安装react和react-dom: npm install react react-dom -S (2)用下面代码替换 ...

  5. 前端开发必备组件库【基于原生js、兼容主流浏览器、B/S必备】

    [持续更新中...跪求点击右上角星星,好人一生平安!] API详见github,链接如下: https://github.com/pomelott/pomelo-plug-in

  6. 【前端开发】】ES6属性promise封装js动画

    如下是我写的demo源码: 可以直接复制用浏览器打开看到效果哦: <!DOCTYPE html> <html> <head> <meta charset=&q ...

  7. 【前端福利】用grunt搭建自动化的web前端开发环境-完整教程

    jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用! 1. 前言 各位web前端开发人员,如果你现在还不知道grunt或者听说过 ...

  8. 转:【前端福利】用grunt搭建自动化的web前端开发环境-完整教程

    原文地址:http://blog.csdn.net/wangfupeng1988/article/details/46418203 jQuery在使用grunt,bootstrap在使用grunt,百 ...

  9. 用grunt搭建自动化的web前端开发环境-完整教程

    原稿:http://www.cnblogs.com/wangfupeng1988/p/4561993.html#!comments jQuery在使用grunt,bootstrap在使用grunt,百 ...

随机推荐

  1. playframework 一步一步来 之 日志 (二)

    带着之前的疑问,我们先回顾一下日志相关的知识: 首先是SL4J,SL4J是个什么东西来着?官方解释为:“The Simple Logging Facade for Java (SLF4J) serve ...

  2. error while loading shared libraries的解決方法

    我是在启动nginx的时候报这个错误,搜索这个错误时发现这篇文章,非本人(小渡博客)原创. 原文地址:http://blog.csdn.net/dumeifang/article/details/29 ...

  3. tensorflow学习之(二)Seesion的两种打开模式

    #Seesion的两种打开模式 import tensorflow as tf matrix1 = tf.constant([[3,3]])#一行两列的一个矩阵 matrix2 = tf.consta ...

  4. scp复制文件到指定端口

    1.scp基本格式 scp file user@host:/dir 2.scp复制文件到指定端口 scp默认连接的端口是22端口,如果ssh不是使用标准的22端口则使用-P(P大写)指定: scp - ...

  5. SpringMCV跨域

    不在同服务器访问就会产生跨域(用其他软件编写HTML测试) 后台Controller package edu.nf.ch02.controller; import org.springframewor ...

  6. python函数(一)

    python函数(一) 1.函数的定义: def test(): print('test is running...') return 定义一个函数,有3个部分需要注意: 函数名称.函数的命名规范与变 ...

  7. 让用户输入一个日期字符串,将其转换成日期格式, 格式是(yyyy/MM/dd,yyyyMMdd,yyyy-MM-dd)中的一种, 任何一种转换成功都可以; 如果所有的都无法转换,输出日期格式非法。

    第三种方法 while(true) {             Date d;        System.out.println("正在进行第一次匹配,请稍后~—~");     ...

  8. IIS 设置文件传输大小限制

    IIS默认传输文件大小为30M,最大允许传输为2G. 1.通过webconfig配置节点设置 在IIS 6.0 设置如下配置节点: 但是IIS 7.0-8.0还要做添加如下配置节点才能正确,否则还是默 ...

  9. css3简单旋转

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>&l ...

  10. jdk8新特性(详解)

    最近在复习外加看点面试题,jdk8的新特性虽然在项目用用到过一两个,准备系统的了解一下jdk8的常用新特性 一:Lambd表达式 也可称为闭包         引入函数式编程到Java中 为了使现有函 ...