gruntjs

简介: gruntjsgruntjs是构建前端可维护性的项目,如自动化、文件压缩、合并及单元测试等等。关于package.json和Gruntfile.js基础介绍1、在项目的当前目录下,新建packjson.

gruntjs
gruntjs是构建前端可维护性的项目,如自动化、文件压缩、合并及单元测试等等。

关于package.json和Gruntfile.js基础介绍

1、在项目的当前目录下,新建packjson.json文件

{
    "name":"mtest",
    "version":"0.1.0",
    "engines": {
        "node": ">= 0.8.0"
    },
    "dependencies": {
        "async": "~0.1.22",
        "coffee-script": "~1.3.3",
        "colors": "~0.6.0-1",
        "dateformat": "1.0.2-1.2.3",
        "glob": "~3.1.21",
        "underscore.string": "~2.2.0rc",
        "which": "~1.0.5",
        "jade":"~1.3.3",
        "less":"~0.30.0"
    },
    "devDependencies": {
        "grunt": "~0.4.0",
        "grunt-contrib-jshint": "~0.1.1",
        "grunt-contrib-uglify": "~0.1.2",
        "grunt-contrib-concat": "~0.1.1"
    }
}


备注:

基础模板:grunt init:jquery
强制覆盖基础模板:grunt init:jquery --force



2、在项目的当前目录下,新建Gruntfile.js文件

module.exports = function(grunt) {
    //配置
    grunt.initConfig({
        pkg : grunt.file.readJSON('package.json'),
        uglify: {
            options: {
                banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
            },
            build: {
                src: 'src/<%= pkg.name %>.js',
                dest: 'build/<%= pkg.name %>.min.js'
            }
        },
        concat: {
            css: {
                src: ['src/style/lib/*.css'],
                dest: 'build/style/basic.css'
            },
            js: {
                src: 'src/js/lib/*.js',
                dest: 'src/js/base.min.js'
            }
        },
        cssmin: {
            css: {
                src: 'build/style/base.css',
                dest: 'build/style/base.min.css'
            }
        },
        jade: {
            release: {
                options: {
                    data: {
                        debug: false
                    },
                    compiler: 'compiler',
                    pretty: true
                },
                files: {
                    "view/test.html": "view/test.jade"
                }
            }
        },
        less: {
            production: {
                options: {
                    yuicompress: true
                },
                files: {
                    "build/style/result.css": "build/style/source.less"
                }
            }
        }
    });
        
    //载入插件
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-css');
    grunt.loadNpmTasks('grunt-contrib-jade');
    grunt.loadNpmTasks('grunt-contrib-less');
    
    //默认任务
     grunt.registerTask('default', ['uglify' ,'concat', 'cssmin', 'jade', 'less']);
}

备注:
配置、载入插件、任务


配置:

js文件压缩:uglify
css文件压缩:cssmin
js和css文件合并:concat
jade模板的使用:jade
less模板的使用:less
可以在option为其设置相应参数


载入对应的插件:

grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-css');
grunt.loadNpmTasks('grunt-contrib-jade');
grunt.loadNpmTasks('grunt-contrib-less');



任务:
grunt.registerTask('default', ['uglify' ,'concat', 'cssmin', 'jade', 'less']);

运行:
在当前项目下执行grunt命令


参考:
gruntjs_documentation
JavaScript 项目构建工具 Grunt 实践:合并文件
JavaScript 项目构建工具 Grunt 实践:安装和创建项目框架
使用GruntJS构建Web程序 (3)
利用 Grunt (几乎)无痛地做前端开发 (一)

如果有相关gruntjs文章及项目可以将链接写在回复中。谢谢。

目录
相关文章
|
7月前
|
监控
gateway 这样设置报错503 ,如何优化参数
当使用Hystrix时,根据您的错误信息,您可能需要调整一些参数来优化性能和解决503错误。以下是一些建议: 1. 调整`semaphore.maxConcurrentRequests`参数:这是控制允许并发请求的最大数量。检查您的应用程序负载和系统资源,并将其适当调整为适合您的情况。如果并发请求量很大,您可能需要增加该值。 2. 调整`timeoutInMilliseconds`参数:这是设置Hystrix命令的超时时间。如果您的服务响应时间很长,您可能需要增加该值以避免超时。确保将超时时间设置为适当的值,以便允许足够的时间来完成请求。 3. 调整`circuitBreaker.sle
102 0
|
8月前
|
Java Linux 开发工具
虹软人脸识别系统
虹软人脸识别系统
197 0
|
9月前
Service层有多个查询,若依(ruoyi)分页失灵?如何解决呢?
Service层有多个查询,若依(ruoyi)分页失灵?如何解决呢?
811 0
|
10月前
|
存储 消息中间件 资源调度
什么是PaaS平台
PaaS平台通常是基于IaaS平台构建的,PaaS平台和IaaS平台最大的差别是需求即服务。所有的管理都是以服务为粒度的,在IaaS以资源管理为中心的平台上提供了更高层次的抽象。
1469 1
|
数据采集 机器学习/深度学习 存储
首席数据官 (CDO) 的十一项核心职责【最后一项很关键】
公司聘请首席数据官 (CDO) 的趋势为数据管理专业人士创造了新的机会,他们可能认为自己的数据职业生涯已达到稳定水平。
首席数据官 (CDO) 的十一项核心职责【最后一项很关键】
|
缓存 负载均衡 安全
F5是干什么的?底层原理是什么?
F5是干什么的?底层原理是什么?
2847 0
|
JavaScript
vue vue3 实现滚动进度条,斑马纹进度条
vue vue3 实现滚动进度条,斑马纹进度条
vue vue3 实现滚动进度条,斑马纹进度条
|
存储 开发框架 搜索推荐
SpringBoot2.x系列教程11--设置项目欢迎页面与自定义Favicon图标
前言 在上一章节中,壹哥 给大家讲解了在SpringBoot项目中如何处理静态资源,明白了静态资源的存储位置,今天我会对静态资源做进一步的处理。 既然我们的项目中存在多个页面,那在项目启动时,首先应该展示哪个页面呢?我们不可能一次性把所有的页面都展现出来,总有一个默认展示的页面,这里我们把这个默认展示的页面成为欢迎页。那么在SpringBoot中,该如何设置欢迎页面呢?请仔细阅读今天的内容,壹哥 带你实现欢迎页面的设置。 一. Spring Boot中配置欢迎页面 接下来我们就开始学习,在SpringBoot中如何配置欢迎页面。 1. 默认欢迎页的源码 在Spring Boot中,默认的欢迎
424 1
|
安全
使用两个队列,改进耗时线程引起的性能问题的思路及代码
使用两个队列,改进耗时线程引起的性能问题的思路及代码
101 0
|
监控 Java Linux
Java 进程 CPU 100% 问题排查
在计算机操作系统中,CPU 是时分(time division)的,CPU 不会被同一个线程独占一直使用着,除非是那种非抢占式的。在操作系统中有很多线程,每个线程的运行时间由 CPU 决定,CPU 会分给每个线程一个时间片,时间片是一个极短的时间长度,如果在时间片内,线程一直占有,则认为是 CPU 100% 。CPU 运行速度很快,即主频非常高,除非密集型耗费 CPU 的运算,其它类型任务一般都会在小于时间片的时间内结束。
1246 0
Java 进程 CPU 100% 问题排查