前段时间因为项目中的报表写了一个Jquery插件,开源到github上,参考以往大神们写的插件的姿势,决定搞了像模像样一点。言归正传。前端工程师对这些工具:Node,bower,grunt,npm这些工具应该都很熟悉。今天就简单介绍一下grunt的用法。

grunt的介绍及安装请看着:getting-started,中文文档,写的也比较详细。

一个完整grunt项目小包含以下模块或配置文件

  • npm:node的包管理器,管理(安装)相关插件
  • grunt-cli:执行grunt任务的工具,但是注意安装了grunt-cli并不意味着安装了grunt,因为grunt是具体包含在项目中的,npm会更具package.json中的插件信息自动下载到grunt项目目录,通常包含在node_modules目录中。
  • package.json:插件及项目配置信息文件。
  • Gruntfile.js grunt任务的定义配置文件。

定义 一个简单的Gruntfile.js:

module.exports = function (grunt) {

    grunt.initConfig({

        // 从自定义的json配置文件读取信息,方便后面应引用
pkg: grunt.file.readJSON("example.jquery.json"), // 引用上面读出来的信息定义一个版权信息头,其实就是用变量拼接一段字符串,后面合并压缩的时候就可以使用这个版权信息
meta: {
banner: "/*\n" +
" * <%= pkg.title || pkg.name %> - v<%= pkg.version %>\n" +
" * <%= pkg.description %>\n" +
" * <%= pkg.homepage %>\n" +
" *\n" +
" * Made by <%= pkg.author.name %>/<%= pkg.author.email %>\n" +
" * Under <%= pkg.licenses[0].type %> License\n" +
" */\n"
}, // 定义一个合并js的任务和一个合并css,只不过这里只有一个js文件和一个css文件,只是简单的拷贝并加上版权信息头
concat: {
dist: {
src: ["src/jquery.example.js"],
dest: "dist/jquery.example.js"
},
css: {
src: ["src/jquery.example.css"],
dest: "dist/jquery.example.css"
},
options: {
banner: "<%= meta.banner %>"
}
}, // 定义一个js语法检查的任务
jshint: {
files: ["src/jquery.example.js"],
options: {
jshintrc: ".jshintrc"
}
}, // 定义一个压缩js的任务,并加上版权信息在头部
uglify: {
my_target: {
src: ["dist/jquery.example.js"],
dest: "dist/jquery.example.min.js"
},
options: {
banner: "<%= meta.banner %>"
}
},
// 定义一个压缩css的任务,并加上版权信息在头部
cssmin: {
css: {
src: ['src/jquery.example.css'],
dest: 'dist/jquery.example.min.css'
},
options: {
banner: "<%= meta.banner %>"
}
} }); require('load-grunt-tasks')(grunt);
grunt.registerTask("default", ["jshint", "concat", "uglify", "cssmin"]); };

然执行如下命令:

#将命令行的当前目录转到项目的根目录下。
#执行npm install命令安装项目依赖的库。
#执行 grunt 命令。 npm install
grunt

下面简单介绍一下bower

bower是一个前端包管理工具,功能类似于LInux的yum,MacBook中的brew,只不过管理的包或软件类型不一样。安装bower工具聚义参照官网说明。今天要说的是如何把自己github上的包上传到bower库进行管理。其实也很简单,就是register命令:

 $bower register mypackage https://github.com/mygithub/mypackage
Package example registered successfully!

上传好了会有相关的提示信息,好了之后你就可以使用以下命令来查看上传的包的信息了:

$bower info  example

然后使用下面的命令来安装包:

$bower install example --save

如果想把上传的包删了重新上传,使用以下命令:

$bower unregister example
unregister是要认证的,需要使用GitHub的密码进行身份验证。
详细的使用方法请使用--help参数来查看。
$bower register --help
$bower unregister --help

使用以上方法,最近写了个jQuery的小插件,请大家多多关照,GitHub地址:https://github.com/zealzhangz/jquery-dropdown-checkboxes

 

简单使用grunt、bower工具合并压缩js和css的更多相关文章

  1. GruntJs安装及使用入门(自定义grunt任务,合并压缩js、css)

    一.Grunt.js简介(实现自动化) 1)简要说明: 1.GruntJs是基于node的javascript命令行工具,可以自动化构建.测试.生成文档的项目管理工具: 2.使用GruntJs可以自动 ...

  2. 使用grunt合并压缩js、css文件

    需要了解的知识: 1.nodejs的安装与命令行使用 2.nodejs安装应用 3.grunt的初步了解 本文已假定读者已经熟悉以上知识. 好,我们继续: 任务1:将src目录下的所有zepto及插件 ...

  3. grunt 合并压缩js和css文件(二)

    具体node及文件配置请看: grunt 安装使用(一) 要压缩的文件 --src/ ajax.js assets.js touch.js zepto.js 目录结构: dist/ node_modu ...

  4. 【前端】一句命令快速合并压缩 JS、CSS

    引用自:一句命令快速合并 JS.CSS 在项目开发环境下,我们会把 JS 代码尽可能模块化,方便管理和修改,这就避免不了会出现一个项目自身 JS 文件数量达到10个或者更多. 而项目上线后,会要求将所 ...

  5. grunt自定义任务——合并压缩css和js

    npm文档:www.npmjs.com grunt基础教程:http://www.gruntjs.net/docs/getting-started/ http://www.w3cplus.com/to ...

  6. uglifyjs 合并压缩 js, clean-css 合并压缩css

    本文主要介绍如何通过CLI命令行(也就是终端或者cmd打开的那个shell窗口)实现 js和 css 的合并压缩. uglifyjs 合并压缩 js: 1.安装node 这一步就不多说了,下载node ...

  7. [Asp.net MVC]Bundle合并,压缩js、css文件

    摘要 在web优化中有一种手段,压缩js,css文件,减少文件大小,合并js,css文件减少请求次数.asp.net mvc中为我们提供一种使用c#代码压缩合并js和css这类静态文件的方法. 一个例 ...

  8. java Web程序使用wro4j合并、压缩js、css等静态资源

    在Web项目中,js.css合并压缩,不仅有利于减少Http请求数量.减少宽带资源占用,还能有效的管理各种js.css的引入,使整个项目更加有序.而对于访问用户来说,其更大的好处是增加了页面的打开速度 ...

  9. Bundle压缩JS和CSS

    ASP.NET MVC之Bundle压缩JS和CSS 介绍Bundle之前先引用<淘宝技术这十年>中一段话,对Web前端稍微有点常识的人都应该知道,浏览器下一步会加载页面中用到的CSS.J ...

随机推荐

  1. 【BZOJ2901】矩阵求和

    Description 给出两个n*n的矩阵,m次询问它们的积中给定子矩阵的数值和. Input 第一行两个正整数n,m. 接下来n行,每行n个非负整数,表示第一个矩阵. 接下来n行,每行n个非负整数 ...

  2. 【BZOJ2946】[Poi2000]公共串 后缀数组+二分

    [BZOJ2946][Poi2000]公共串 Description        给出几个由小写字母构成的单词,求它们最长的公共子串的长度. 任务: l        读入单词 l        计 ...

  3. 优雅的go语言--入门篇

    1.特点 1.静态类型,编译型的开源语言 2.脚本华的语法,支持多种编程范式(函数式&面向对象) 3.原生,给力的并发编程的支持 2.优势 1.脚本化的语法 2.静态类型+编译型,程序运行速度 ...

  4. angular -- ng-ui-route路由及其传递参数?script标签版

    考虑到 多视图等因素,所以 angular 的路由考虑使用 ng-ui-route来做,而不使用 ng-route来做! <!DOCTYPE html> <html lang=&qu ...

  5. OneThink后台模型怎么玩?

    OneThink 后台模型有个模型类型: 模型下——>设计——>表单显示分组(怎么玩?) 这个将会显示在:内——>发布文章内容的时候: 单选按钮: 内容模块显示: 枚举类型可以这样玩 ...

  6. Jenkins升级、迁移、备份

    1.升级 下载新版Jenkins.war文件,替换旧版本war文件,重启即可. Jenkins.war文件的位置一般为/usr/lib/jenkins/Jenkins.war. 2.迁移.备份 Jen ...

  7. 表格table列宽度控制<colgroup>

    <colgroup> 标签用于对表格中的列进行组合,以便对其进行格式化. 通过使用 <colgroup> 标签,可以向整个列应用样式,而不需要重复为每个单元格或每一行设置样式. ...

  8. kibana 和ES安装配置常见问题解决

    1.下载相同版本的kibana和ES: es5.6.5下载地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5 ...

  9. SpringBoot项目属性配置

    如果使用IDEA创建Springboot项目,默认会在resource目录下创建application.properties文件,在SpringBoot项目中,也可以使用yml类型的配置文件代替pro ...

  10. nginx 下使用 bootstrap 字体的问题

    使用boostrap时,出现 glyphicons-halflings-regular.ttf glyphicons-halflings-regular.woff glyphicons-halflin ...