zoukankan      html  css  js  c++  java
  • gruntjs续

    gruntjs
    官方教程:http://gruntjs.com

    本次主要讲述Gruntfile.js配置文件在项目中的应用
    配合jade、less一起使用。

    项目目录包括jade文件夹、less文件夹、css文件夹、js文件夹等等
    jade文件夹中包含首页、版本选择页以及提示信息页
    活动首页样式变化频繁,但是jade可以实现超文本标记语言结构化,简化开发利于维护
    版本选择页变化较小,一次开发,以后基本维持。
    结果页及信息提示页实现结构化,主要变动标题及链接,可以通过配件tip_conf.jade文件,每次修改这个配置文件即可。

    tip_conf.jade源码介绍:

    title = '活动标题',
    buyphone = 'http://buyphone',
    buybox = 'http://buybox',
    bookphone = 'http://bookphone',
    bookbox = 'http://bookbox',
    home = 'http://home'

    Gruntfile.js配件文件源码:

    module.exports = function(grunt) {
        grunt.initConfig({
            pkg : grunt.file.readJSON('package.json'),
            conf: {
                date: '130601',
                ocss: '<%= conf.date %>/less',
                tcss: '<%= conf.date %>/css',
                js: '<%= conf.date %>/js',
                ophone: '<%= conf.date %>/ophone/tip',
                obox: '<%= conf.date %>/obox/tip',
                tphone: '<%= conf.date %>/phone/tip/phone123456',
                tbox: '<%= conf.date %>/box/tip/box123456'
            },
            jade: {
                compile: {
                    options: {
                        data: {
                            debug: false,                        
                        },
                    },
                    files: { // 包含首页、版本页、提示页
                        "<%= conf.date %>/index.html": ["<%= conf.date %>/kindex.jade"],
                        "<%= conf.date %>/choose.html": ["<%= conf.date %>/kchoose.jade"],
                        "<%= conf.tphone %>/AccountQustion.html": "<%= conf.ophone %>kAccountQustion.jade",
                        "<%= conf.tphone %>/buyExpire.html": "<%= conf.ophone %>kbuyExpire.jade",
                        "<%= conf.tphone %>/CodeError.html": "<%= conf.ophone %>kCodeError.jade",
                        "<%= conf.tphone %>/downOrder.html": "<%= conf.ophone %>kdownOrder.jade",
                        "<%= conf.tphone %>/joinShopCart.html": "<%= conf.ophone %>kjoinShopCart.jade",
                        "<%= conf.tphone %>/NoRegister.html": "<%= conf.ophone %>kNoRegister.jade",
                        "<%= conf.tphone %>/NoSuccess.html": "<%= conf.ophone %>kNoSuccess.jade",
                        "<%= conf.tphone %>/OnlyOne.html": "<%= conf.ophone %>kOnlyOne.jade",
                        "<%= conf.tphone %>/OnlyOne_x.html": "<%= conf.ophone %>kOnlyOne_x.jade",
                        "<%= conf.tphone %>/QueryBuy.html": "<%= conf.ophone %>kQueryBuy.jade",
                    }
                }
            },
            less: {
                production: {
                    options: {
                        yuicompress: true
                    },
                    files: {
                        "<%= conf.tcss %>/mactive.css": "<%= conf.ocss %>/active.less"
                    }
                }
            },
            uglify : {
                options : {
                    compress: true,
                },
                build : {
                    src : '<%= conf.js %>/ac.js',
                    dest : '<%= conf.js %>/ac.min.js'
                }
            },
            watch: {
                options:{
                    livereload: true,
                },
                css: {
                    files: ['<%= conf.ocss %>/*.less'],
                    tasks: ['less', 'jade'],
                },
                uglify: {
                    files: ['<%= conf.js %>/*.js'],
                    tasks: ['uglify', 'jade'],
                },
                jade: {
                    files: ['<%= conf.date %>/*.jade', '<%= conf.ophone %>', '<%= conf.obox %>'],
                    tasks: ['jade'],
                }
            }
        });
    
    
        // 载入concat和uglify插件,分别对于合并和压缩
        grunt.loadNpmTasks('grunt-contrib-concat');
        grunt.loadNpmTasks('grunt-contrib-uglify');
        grunt.loadNpmTasks('grunt-css');
        grunt.loadNpmTasks('grunt-contrib-jade');
        grunt.loadNpmTasks('grunt-contrib-less');
        grunt.loadNpmTasks('grunt-contrib-watch');
        grunt.loadNpmTasks('grunt-contrib-yuidoc');
        grunt.loadNpmTasks('grunt-contrib-livereload');
        grunt.loadNpmTasks('grunt-contrib-handlebars');
    
    
        // 注册任务
        grunt.registerTask('default', ['less', 'uglify', 'jade' ]);
    }; 

    运行grunt watch
    当less、js、jade文件有变化时会自动编译,是不是相当方便。简化了工作流程。
    以上过程只是初探阶段,欢迎一起讨论gruntjs。

    附:
    版本选择页
    grunt

  • 相关阅读:
    海明距离分类 JavaScript
    控制器语法糖
    中文版 ImageNet Classification with Deep Convolutional Neural Networks
    中文版 R-FCN: Object Detection via Region-based Fully Convolutional Networks
    中文版 Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
    Scrapy中scrapy.Request和response.follow的区别
    神马是回调函数?
    数据库索引原理及优化
    MYSQL数据库引擎区别详解
    数据库索引原理详解
  • 原文地址:https://www.cnblogs.com/kuikui/p/3114345.html
Copyright © 2011-2022 走看看