初探grunt.js

package.js

{
  "name": "ttd_v3",
  "version": "0.1.0",
  "author": "liujin",
  "devDependencies": {
    "connect-livereload": "^0.5.2",
    "grunt": "~0.4.2",
    "grunt-contrib-concat": "~0.3.0",
    "grunt-contrib-connect": "^0.7.1",
    "grunt-contrib-cssmin": "^0.11.0",
    "grunt-contrib-jshint": "~0.6.0",
    "grunt-contrib-sass": "~0.3.0",
    "grunt-contrib-uglify": "~0.3.2",
    "grunt-contrib-watch": "^0.6.1",
    "grunt-css": "~0.5.4",
    "grunt-sass": "0.6.1"
  }
}

gruntfile.js

module.exports = function(grunt) {

    // LiveReload的默认端口号,你也可以改成你想要的端口号
    var lrPort = 35729;
    // 使用connect-livereload模块,生成一个与LiveReload脚本
    // <script src="http://127.0.0.1:35729/livereload.js?snipver=1" type="text/javascript"></script>
    var lrSnippet = require(‘connect-livereload‘)({ port: lrPort });
    // 使用 middleware(中间件),就必须关闭 LiveReload 的浏览器插件
    var lrMiddleware = function(connect, options) {
        return [
            // 把脚本,注入到静态文件中
            lrSnippet,
            // 静态文件服务器的路径
            connect.static(options.base),
            // 启用目录浏览(相当于IIS中的目录浏览)
            connect.directory(options.base)
        ];
    };

    // 项目配置(任务配置)
    grunt.initConfig({
        // 读取我们的项目配置并存储到pkg属性中
        pkg: grunt.file.readJSON(‘package.json‘),
        // 通过connect任务,创建一个静态服务器
        connect: {
            options: {
                // 服务器端口号
                port: 8000,
                // 服务器地址(可以使用主机名localhost,也能使用IP)
                hostname: ‘localhost‘,
                // 物理路径(默认为. 即根目录) 注:使用‘.‘或‘..‘为路径的时,可能会返回403 Forbidden. 此时将该值改为相对路径 如:/grunt/reloard。
                base: ‘.‘
            },
            livereload: {
                options: {
                    // 通过LiveReload脚本,让页面重新加载。
                    middleware: lrMiddleware
                }
            }
        },
        // 通过watch任务,来监听文件是否有更改
        watch: {
            client: {
                // 我们不需要配置额外的任务,watch任务已经内建LiveReload浏览器刷新的代码片段。
                options: {
                    livereload: lrPort
                },
                // ‘**‘ 表示包含所有的子目录
                // ‘*‘ 表示包含所有的文件
                files: [‘html/*.html‘, ‘css/*.css‘, ‘js/*.js‘, ‘images/**/*‘]
            },
            sass: {
                files: [‘sass/*.{scss,sass}‘,‘sass/*.{scss,sass}‘],
                tasks: [‘sass:dist‘]
            }
        },
        concat : {
            webqq : {
                files : {
                     ‘dist/js/test.js‘ : [‘js/a.js‘,‘js/b.js‘]
                }
            }
         },
         uglify : {
            options: {
                banner: ‘/** \n * <%= pkg.name %> \n * author:<%= pkg.author %> \n * update:<%= new Date() %> \n**/\n‘
            },
            webqq : {
                files : {
                     ‘dist/js/test.min.js‘ : [‘dist/js/test.js‘]
                }
            }
        },
        cssmin: {
            options: {
                    banner: ‘/** \n * <%= pkg.name %> \n * author:<%= pkg.author %> \n * update:<%= new Date() %> \n**/‘
            },
            cssmini: {
                files: {
                  ‘dist/css/test.min.css‘: [‘css/test.css‘]    // 压缩 test.css文件
                }
            }
        },
        sass: {
          dist: {
            files: {
              ‘dist/css/test.css‘: ‘sass/test.scss‘
            }
          }
        }

    }); // grunt.initConfig配置完毕

    // 监控html js css
    grunt.loadNpmTasks(‘grunt-contrib-connect‘);
    grunt.loadNpmTasks(‘grunt-contrib-watch‘);
    grunt.registerTask(‘live‘, [‘connect‘, ‘watch‘,‘concat‘,‘uglify‘]);

    //合并压缩js
    grunt.loadNpmTasks(‘grunt-contrib-concat‘);  //合并任务
    grunt.loadNpmTasks(‘grunt-contrib-uglify‘);  //js压缩
    grunt.registerTask(‘jsmini‘, [‘cssmin‘]);

    //压缩css
    grunt.loadNpmTasks(‘grunt-css‘);
    grunt.registerTask(‘cssmini‘, [‘cssmin‘]);

    //编译sass
    grunt.registerTask(‘sassmini‘, [‘sass:dist‘, ‘watch‘]);
    grunt.loadNpmTasks(‘grunt-sass‘);
    grunt.loadNpmTasks(‘grunt-contrib-watch‘);
};
时间: 2024-10-15 06:48:39

初探grunt.js的相关文章

Grunt.js 上手

Official Site gruntjs.org/docs/getting-started.html 或者看http://tgideas.qq.com/webplat/info/news_version3/804/808/811/m579/201307/216460.shtml grunt可以帮我们做什么grunt是一个自动化工具 自动压缩js css 建立相关的文件&文件夹 首先grunt需要运行在NodeJS的环境下安装Grunt之前,可以在命令行中运行node -v查看你的Node.js

再探 butterfly.js - grunt.js篇(一)

再探 butterfly.js - grunt.js篇(一) 神器 grunt.js 久仰grunt.js的大名,学习grunt.js一直是我todo List的第一位.趁着新春佳节来临之际(打酱油的日子),就来填了这个坑,完了这个心愿. grunt.js的强大,强大在于它拥有很多用途丰富的插件,和不同插件之间的联动实现更牛逼的功能. 这里默认大家已经安装了npm和会用npm install等指令,就不详细讲了.下面讲用到grunt-contrib-watch和grunt-contrib-con

Grunt JS构建环境搭建以及使用入门

Grunt JS构建环境搭建以及使用入门 1.应用场景 一种自动化任务处理工具,对于日常的需求(代码规则检查.代码合并)可以实现自动化执行,只需要保留package.json和Gruntfile.js便能用一句代码行进行依赖下载. 2.搭建步骤 Grunt 依赖 Node.js 所以在安装之前确保你安装了 Node.js,然后开始安装 Grunt. 2.1安装 Node.js 进入nodejs官网https://nodejs.org/en/download/,根据当前机型选择对应版本下载安装后,

使用grunt js进行js的链接和压缩

1,http://nodejs.org/download/ 安装nodejs 2,配置环境变量,将nodejs的安装目录放置在Path环境变量中 3,在cmd中 npm install -g grunt-cli,如果已经安装的话npm uninstall -g grunt  这句话可以删除 4,grunt -version 可以查看是否安装成功 5,在要压缩的跟目录中创建package.json 6, 一个简单的package.json样例 { "name": "umedit

初探 Ext JS 6(sencha touch/ext升级版)

Sencha Touch 现在已全面升级至Ext Js 6,那么我们如何使用他们呢? 首先去官网下载最新的sdk和帮助文档 sdk下载地址:https://www.sencha.com/products/extjs/evaluate/ 如图,这个是试用版下载地址,试用版和正版的区别大概就是试用版有试用标记水印吧,大概是吧. 官方api下载地址:http://docs.sencha.com/extjs/6.0/ 这个就是官方的在线api了,想要下载就把鼠标移动到左上角的Ext JS Guides上

初探node.js -- 环境配置及安装

1.node安装包的下载 http://www.nodejs.org/download/ 这个是官网地址~ 如果你也是Windows系统的话安装Windows Installer (.msi)即可. 2.安装nodeJs 双击安装包一直下一步即可,nodejs还是比较人性化的.他会自动帮你把环境变量配好~ 在安装node的安装包时我在这里报了个错,error 2502,error2503错误原因是你的权限不够(话说win8安装.msi文件时经常这样..). 解决方法是用管理员权限运行此文件即可.

初探node.js

一.定义及优势 定义:Node.js是一个基于 Chrome V8 引擎 的 JavaScript 运行时,它以事件驱动为基础实现了非阻塞模型. 优势:由于Web场景下的大多数任务(静态资源读取.数据库操作.渲染页面)都是I/O密集的,所以使用非阻塞模型就可以大大地提高CPU的利用率. 使用场景:Web Server.本地代码构建(用于编译构建前端代码).实用工具开发. 二.成员 CommonJs:模块规范 global:全局对象 process:当前执行的进程 三.CommonJS规则 每个文

搭建Windows Node.js环境

利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Javascript引擎.chrome浏览器就基于V8,同时打开20-30个网页都很流畅.Nodejs标准的web开发框架Express,可以帮助迅速建立web站点,比起PHP的开发效率更高,而且学习曲线更低.非常适合小型网站,个性化网站 这里介绍如何搭建Node.js Windows环境 第一步:下载并执行Node.js Windows Installer (.msi) (V

Node.js 学习资源

这篇文章编译整理自Stack Overflow的一个如何开始学习Node.js的Wiki帖,这份资源列表在SO上面浏览接近60万次,数千个收藏和顶.特意整理发布到这里,其中添加了部分中文参考资料. 学习指南和教程 NodeSchool.io 交互式课程 Node的艺术 (Node简介) Hello World Hello World Web Server Node.js 指南 使用Node.js, express和MongoDB创建一个博客 Node+MongoDB 100分钟建站攻略 Proj