博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
grunt学习笔记
阅读量:5989 次
发布时间:2019-06-20

本文共 3491 字,大约阅读时间需要 11 分钟。

gruntjs 是一个基于nodejs的自动化工具,只要熟悉nodejs或者又一定js经验就可以熟练应用。

最近很火的前端自动化小工具,基于任务的命令行构建工具

我们需要一个自动化的工作流程,让我们更专注于coding,而不是coding外的繁琐工作。于是Grunt应运而生。可以想像,如果在node环境下,一行命令搞定一个场景,So Cool…

package.json //项目自动化所依赖的相关插件。

Gruntfile.js //项目自动化工作流配置文件,重要

  1. 安装
    • 确保已经安装node和npm
    • 然后安装grunt的客户端命令行工具 npm install -g grunt-cli, 安装完之后就有了grunt
      压缩css js和合并文件需要grunt插件,grunt只是一个平台,完成各项任务有对应的插件。
    • grunt插件十分丰富,其中带contrib的为官方插件 其他的为第三方插件
  2. 安装grunt插件
    • 方式1 在工程目录中创建一个package.json文件,列出依赖的插件和对应的版本即可
      然后cd到工程目录下 执行 npm install
    • 方式2 使用命令行工具 npm install grunt-contrib-watch --save-dev
  3. 创建gruntjs工程文件

    gruntjs支持两种语言创建工程文件: gruntfile.js或者gruntfile.coffee
    grunt工程文件遵循node模块定义方式,主题结构为:

    module.exports = function(grunt){        grunt.initConfig({            clean:{                a:['<%=temp%>']             },            b:['<%=temp%>']        });    //获取工程中需要的插件    grunt.loadNpmTasks('grunt-contrib-clean');    grunt.loadNpmTasks('grunt-contrib-cssmin');    grunt.loadNpmTasks('grunt-contrib-uglify');    grunt.loadNpmTasks('grunt-contrib-watch');    grunt.loadNpmTasks('grunt-contrib-copy');    grunt.loadNpmTasks('grunt-contrib-includes');    //注册任务    grunt.registerTask('build', ['clean','uglify','cssmin','includes','copy','clean']);    //在命令行中执行grunt,就会使用默认任务    grunt.registerTask('default',['build']);
    //一个完整的gruntjs工程文件module.exports = function(grunt){    var rt = 'src-dev/',        indexDir = rt + 'index/',        tempDir  = rt + 'temp/';    console.log(grunt.option('keys'));    grunt.file.exists(tempDir) && grunt.file.delete(tempDir);    grunt.file.markdir(tempDir);    grunt.initConfi({        pkg: grunt.file.readJSON('package.json');        rt: rt,        tempDir: tempDir,        indexDir = indexDir,        clear: { build:['<%=temp%>']},        jsdoc:{            dist:{                src:'<%=index%>doc.js',                options:{                    destination:'<%=rt%>../out/'                }            }        },        cssmin:{            combine:{                files:{                    '<%=temp%>c.min.css':['<%=rt%>common/reset.css', '<%=index%>c.css']                }            }        },        includes:{            files:{                sr:['<%=rt%>**/*.html'],                dest:'<%=temp%>',                cwd:'.',                flatten:true,                options{                    banner:''                }            }        },        watch:{            files:['<%=index%>j.js','<%=index%>*.html', '<%=index%>c.css']            tasks:['clean','uglify','cssmin','includes','copy','clearn'],            options:{ livereload:true}        },        uglify:{            dist:{                files:{                    '<%=temp%>j.js', ['<%=index%>*.js']                }            }        },        copy:{            main:{                files:[{                    flatten: true,                    expand: true,                    filter:'isFile',                    src:['<%=temp%>index.html'],                    dest='<%=rt%>../src/'                }]            }        }        //获取工程中需要的插件        grunt.loadNpmTasks('grunt-contrib-clean');        grunt.loadNpmTasks('grunt-contrib-cssmin');        grunt.loadNpmTasks('grunt-contrib-uglify');        grunt.loadNpmTasks('grunt-contrib-watch');        grunt.loadNpmTasks('grunt-contrib-copy');        grunt.loadNpmTasks('grunt-contrib-includes');        //注册任务        grunt.registerTask('build', ['clean','uglify','cssmin','includes','copy','clean']);        //在命令行中执行grunt,就会使用默认任务        grunt.registerTask('default',['build']);

转载地址:http://cfnlx.baihongyu.com/

你可能感兴趣的文章
nginx
查看>>
python网络编程socket之多线程
查看>>
分工表
查看>>
【软工学习】优化管理
查看>>
MySQL创建用户的三种方法 (并授权)转
查看>>
如何起一个本地服务
查看>>
declaration may not appear after executable statement in block
查看>>
【CT】Universal Turing Machine
查看>>
数据之魅(1)单一变量:形状和分布
查看>>
Nginx调优
查看>>
神,赐我一颗平静的心!
查看>>
HDU2045(递推题)
查看>>
企业级 SpringBoot 教程 (二十五)sprinboot整合elk,搭建实时日志平台
查看>>
(一)springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - 平台导语简介
查看>>
Python 之文件上传
查看>>
go 语言基础
查看>>
SpringMVC配置session过期拦截器,返回登录页面
查看>>
【原创】基于部署映像服务和管理(DISM)修改映象解决WIN7 USB3.0安装时报错
查看>>
sqlserver获取系统时间
查看>>
Codeforces Round #541 (Div. 2) A.Sea Battle
查看>>