gruntjs续

简介: 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


目录
相关文章
|
云安全 监控 安全
出海合规云安全,AWS Landing Zone解决方案建立安全着陆区
出海合规云安全,AWS Landing Zone解决方案建立安全着陆区
|
存储 编解码 安全
阿里云视频点播简介和购买流程
阿里云视频点播是阿里巴巴集团旗下的一项强大的视频云服务,为用户提供在线视频上传、存储、转码、播放等全方位的视频解决方案。作为中国最大的云计算服务提供商,阿里云视频点播在视频领域拥有丰富的技术实力和经验,为用户提供高效、可靠、安全的视频服务。
|
设计模式
实践中面向对象的优缺点
【7月更文挑战第1天】本文介绍对象命名方案影响代码可读性。优点包括模块化、可重用性、可扩展性和易维护性。缺点包括类和对象识别的困难,学习曲线及可能的重用挑战。引用:《面向对象开发的陷阱》- 布鲁斯.韦伯斯特。
413 4
实践中面向对象的优缺点
|
12月前
|
JavaScript
Vue3中使用provide/inject来避免v-model的循环引用
`provide`和`inject`是 Vue 3 中非常有用的特性,在处理一些复杂的组件间通信问题时,可以提供一种灵活的解决方案。通过合理使用它们,可以帮助我们更好地避免`v-model`的循环引用问题,提高代码的质量和可维护性。
306 58
|
消息中间件 测试技术
通过轻量消息队列(原MNS)主题HTTP订阅+ARMS实现自定义数据多渠道告警
轻量消息队列(原MNS)以其简单队列模型、轻量化协议及按量后付费模式,成为阿里云产品间消息传输首选。本文通过创建主题、订阅、配置告警集成等步骤,展示了该产品在实际应用中的部分功能,确保消息的可靠传输。
254 2
|
安全 Java API
Nest.js 实战 (三):使用 Swagger 优雅地生成 API 文档
这篇文章介绍了Swagger,它是一组开源工具,围绕OpenAPI规范帮助设计、构建、记录和使用RESTAPI。文章主要讨论了Swagger的主要工具,包括SwaggerEditor、SwaggerUI、SwaggerCodegen等。然后介绍了如何在Nest框架中集成Swagger,展示了安装依赖、定义DTO和控制器等步骤,以及如何使用Swagger装饰器。文章最后总结说,集成Swagger文档可以自动生成和维护API文档,规范API标准化和一致性,但会增加开发者工作量,需要保持注释和装饰器的准确性。
500 0
Nest.js 实战 (三):使用 Swagger 优雅地生成 API 文档
|
安全 Java 测试技术
阿里开发手册 嵩山版-编程规约 (五)日期时间的规范
《阿里开发手册 嵩山版》的日期时间规范部分提供了关于日期时间处理的强制性和推荐性规约,包括日期格式化、时间获取、避免硬编码日期、处理闰年问题等,以确保程序在时间处理上的准确性和稳定性。
|
Java Linux PHP
【应急响应】后门攻击检测指南&Rookit&内存马&权限维持&WIN&Linux
【应急响应】后门攻击检测指南&Rookit&内存马&权限维持&WIN&Linux
316 1
|
机器学习/深度学习 人工智能 算法
人工智能在机器人编程与自动化控制中的应用与发展
人工智能在机器人编程与自动化控制中的应用与发展
974 0
|
消息中间件 安全 算法
通透!从头到脚讲明白线程锁
线程锁在分布式应用中是重中之重,当谈论线程锁时,通常指的是在多线程编程中使用的同步机制,它可以确保在同一时刻只有一个线程能够访问共享资源,从而避免竞争条件和数据不一致性问题。
697 0