我的grunt配置

module.exports = function(grunt) {

    // 配置.
    grunt.initConfig({
        pkg: grunt.file.readJSON(‘package.json‘),
        watch: {
            css: {
                files: ‘static/introduce/scss/**/*.scss‘,
                tasks: [‘clean:css‘,‘compass‘],
                options: {
                    livereload: true
                }
            } ,
            includereplace:{
                files:‘src/html/**/*.html‘,
                tasks:[‘includereplace‘,‘copy:html‘,‘clean:html‘]
            }

        },
        jshint:{//js代码检测工具
            options: {
                jshintrc: ‘.jshintrc‘
            },
            src: ["src/static/introduce/js/app/**/*.js"]
        },
        includereplace: {//包含html片段
            nav: {
                files: [
                    {src: ‘src/html/**/*.html‘, dest: ‘.tmphtml/‘}
                ]
            }
        },
        uglify: {//js压缩
            options: {
                banner: ‘/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n‘
            },
            js: {
                files: [{
                    expand: true,
                    cwd: ‘static/introduce/js‘,
                    src: ‘**/*.js‘,
                    dest: ‘static/introduce/js‘,
                    ext:".min.js"
                }]
            }
        },
        compass: {//compass
            dev: {
                options: {
                    sassDir: ‘static/introduce/scss‘,
                    cssDir: ‘static/introduce/css‘,
                    outputStyle:‘compressed‘,
                    noLineComments: true
                }
            }
        },
        clean: {//清除
            mod:["static/introduce/css/module"],
            css:["static/introduce/css"],
            html:[".tmphtml/"]
        },
        copy: {//复制
            css: {
                expand: true,
                cwd: ‘static/introduce/css/‘,
                src: ‘**‘,
                dest: ‘../../src/SVipSys/SVipSys.Web/static/Introduce/css‘,
                flatten: true,
                filter: ‘isFile‘
            },
            scss:{
                expand: true,
                cwd: ‘static/introduce/scss/‘,
                src: ‘**‘,
                dest: ‘../../src/SVipSys/SVipSys.Web/static/Introduce/scss‘
            },
            html:{
                expand: true,
                cwd: ‘.tmphtml/src/html/‘,
                src: ‘**‘,
                dest: ‘view/‘
            }
        },
        imagemin:{//图片压缩
            dynamic: {
                files: [{
                    expand: true,
                    cwd: ‘static/‘,
                    src: [‘**/*.{png,jpg,gif}‘],
                    dest: ‘static/‘
                }]
            }
        }
    });

    // 加载任务
    grunt.loadNpmTasks(‘grunt-contrib-uglify‘);
    grunt.loadNpmTasks(‘grunt-contrib-compass‘);
    grunt.loadNpmTasks(‘grunt-contrib-clean‘);
    grunt.loadNpmTasks(‘grunt-contrib-watch‘);
    grunt.loadNpmTasks(‘grunt-contrib-copy‘);
    grunt.loadNpmTasks(‘grunt-include-replace‘);
    grunt.loadNpmTasks(‘grunt-contrib-jshint‘);
    grunt.loadNpmTasks(‘grunt-contrib-imagemin‘);

    // 任务列表
    grunt.registerTask(‘default‘,[‘clean:css‘,‘compass‘,‘clean:mod‘,,‘watch‘]);
    grunt.registerTask(‘tpl‘,[‘includereplace‘,‘copy:html‘,‘clean:html‘]);

};

写在后面的话,最初听到grunt这个词的时候,是在去年上半年,当时前端构建工具非常火,我一直觉得它是一个非常高大上的东西,后来发现真的只是个工具而已。大神们说,你们不应该被工具所累,因为工具是学不完的。是的,我们不需要跟风,但不代表不必要用。很多是项目需求,比如你在入职后接手了一些新的项目,那么,最好就是学习它,掌握它。使用grunt的时候,确实感到了方便之处,比如图片压缩、js压缩、代码检测。。。工具,它是帮我们干活,减少重复、无聊的工作量的。所以,使用它的时候,我们应该明确的知道,希望它能帮我们干什么活,而不是对着API写一堆配置都不知道在干嘛。。。

时间: 2024-10-13 23:48:59

我的grunt配置的相关文章

grunt配置详情

这个grunt配置 是我的一个程序员朋友从网上无意间看到的,然后他亲测了下,恩,是可以的.不过我到目前还未测试过是否可以. 一.安装node, 首先确保电脑已有node的环境.然后 运行  npm install -g grunt-cli   然后运行 grunt --version 查看当前grunt是否安装;二.在项目根目录下面创建一个js文件,叫gruntfile.js;    配置项如下:    module.exports = function (grunt) {    var con

grunt配置太复杂?发布一个前端构建工具,简单高效,自动跳过未更新的文件

做前端项目,如果没有一个自动化构建工具,手动处理那简直就是坑爹O(∩_∩)O.于是上网了解了下,grunt用的人不少,功能也挺强大.看了一下grunt的配置(包括gulp),感觉稍显复杂.当时项目结构非常简单,就是单文件夹下的html文件,再加上js.css.图片.需要的功能也就js的合并和压缩,html和css的简单格式化,功能简单,So easy……开搞,搞定第一版,一直用到今年.最近整理项目,感觉只支持单一文件夹,功能全内置,实在不够灵活,于是重写了第二版.功能实现没什么难的,麻烦的是打造

前端grunt 配置 concat

需求:前端切页面,每个页面公共头部尾部 1 module.exports=function(grunt){ 2 3 // Project configuration. 4 grunt.initConfig({ 5 pkg: grunt.file.readJSON('package.json'), 6 concat: { 7 one:{ 8 src:['cixi/html/头部.html','cixi/html/1.html','cixi/html/尾部.html'], 9 dest:'cixi/

grunt配置太复杂?使用Qbuild进行文件合并、压缩、格式化等处理

上次简单介绍了下Qbuild的特点和配置,其实实现一个自动化工具并不复杂,往简单里说,无非就是筛选文件和处理文件.但Qbuild的源码也并不少,还是做了不少工作的. 1. 引入了插件机制.在Qbuild中称作模块,分为任务处理模块(如合并.压缩等处理)和文本处理模块(如内容添加和替换等处理),一个任务处理模块可以有多个文本处理模块.任务和文本处理模块均可以按指定的顺序执行,可以指定要执行的模块.每个任务的配置可以继承或覆盖全局配置,既保证了简洁,也保证了灵活. 2. 文件筛选支持通配符(*和**

grunt配置sass项目自动编译

1.安装Ruby和SASS 首先我们需要在电脑上安装Ruby和SASS.如果您使用的是Mac,您就没必要安装Ruby.如果您使用的是Window系统,你需要安装Ruby. 2.安装Nodejs 由于使用Grunt需要Nodejs的支持,所以我们要确认自己的电脑已安装了nodejs.安装好以后看看在命令行下能不能执行node命令了,如果可以那么就表示安装成功了. 简单点的安装就是直接进入Nodejs官网中下载各系统所需的安装包进行安装. 3.安装grunt 在安装grunt.js之前,需要先安装G

配置grunt进行css、js的检查、合并和压缩

现在会进行代码的合并和压缩已成为前端人员的必备知识,那么现在来介绍一个grunt的工具.grunt是个风靡世界的工具,它的首页是  http://www.gruntjs.net 这是个中文网站,有文档可以参考.但是只看文档是不是觉得很蛋疼呢?一个字:看不太懂啊! 好了,废话不多说,直接发安装步骤和注意事项,都是心酸研究出来的啊... 这里介绍mac的安装方法.windows方法相类似,等我稍微研究一下后再发上来 首先,要安装nodejs,grunt是依赖node滴.上 www.nodejs.or

Grunt的配置及使用(压缩合并js/css)

Grunt的配置及使用(压缩合并js/css) 安装 前提是你已经安装了nodejs和npm. 你能够在 nodejs.org 下载安装包安装.也能够通过包管理器(比方在 Mac 上用 homebrew,同一时候推荐在 Mac 上用 homebrew). 安装grunt CLI npm install -g grunt-cli 依照官方的说法.grunt-cli仅仅是为了在同一台机器上安装不同的grunt版本号,那么咱们先不去管他. 在项目中使用grunt 首先须要往项目里加入两个文件:pack

grunt安装、配置、在webstrom中使用

1.全局范围安装 Grunt命令行(CLI) npm install -g grunt-cli Grunt CLI的任务很简单:调用与Gruntfile在同一目录中 Grunt.这样带来的好处是,允许在同一个系统上同时安装多个版本的 Grunt. 2.安装grunt相关模块 在package.json文件中添加所需grunt模块,例如: "grunt": "^0.4.5", "grunt-contrib-concat": "^0.5.1

grunt入门讲解3:实例讲解使用 Gruntfile 配置任务

这个Gruntfile 实例使用到了5个 Grunt 插件: grunt-contrib-uglify grunt-contrib-qunit grunt-contrib-concat grunt-contrib-jshint grunt-contrib-watch 上面的uglify,concat,watch这三个插件用的最多,第一个插件是用来压缩文件的,第二个插件是用来合并文件的,第三个插件用来监听文件内容的,如果文件内容改变了,就会触发回调方法进行相应的处理. 我们一步一步来讲解这个 Gr