grunt 基本使用使用(一)。
使用grunt 之前,需要做一些基本工作。
1、在E盘 新建空文件夹 grunt。
2、在grunt目录下新建package.json 文件,用了存储 npm模块的依赖项。基本依赖块代码如下:
- {
- "name": "demo",
- "file": "zepto",
- "version": "0.1.0",
- "description": "demo",
- "license": "MIT",
- "devDependencies": {
- "grunt": "~0.4.1",
- "grunt-contrib-jshint": "~0.6.3",
- "grunt-contrib-uglify": "~0.2.1",
- "grunt-contrib-requirejs": "~0.4.1",
- "grunt-contrib-concat": "~0.3.0",
- "grunt-contrib-copy": "~0.4.1",
- "grunt-contrib-clean": "~0.5.0",
- "grunt-strip": "~0.2.1"
- },
- "dependencies": {
- "express": "3.x"
- }
- }
2、启动命令行:进入E盘,下载相关的js文件包。
这时候会根据package.json里的代码下载相关的grunt插件包。
下载完成后,会自动生成名为 “node_modules”的文件夹,里面便是相关的插件包。
3、新建 Gruntfile.js
该文件主要做两件事:
① 读取package信息
② 插件加载、注册任务,运行任务(grunt对外的接口全部写在这里面)
4、新建src文件夹,分别添加两个测试JS文件---a.js,b.js(代码自己随意写下)。
(一)文件压缩 插件 grunt-contrib-unglify
Gruntfile.js 如下代码
- module.exports=function(grunt){
- grunt.initConfig({
- uglify:{
options:{
banner:'/*this is 文件头注释信息,只会出现一次*/'
},- my_target:{
- files:{
- 'dest/lib.min.js':['src/a.js','src/b.js']
- }
- }
- }
- });
- grunt.loadNpmTasks('grunt-contrib-uglify');
- grunt.registerTask('default', ['uglify']);
- };
使用 grunt 命令,成功后,便可在 生成压缩好后的 lib.min.js 文件。
更多的例子 可以在下载的 /node_modules/grunt-contrib-uglifydocs/uglify-examples.md 查看
(二)文件合并 grunt-contrib-concat
- module.exports=function(grunt){
- console.log(grunt);
- grunt.initConfig({
- concat:{
- options:{
- separator:'/*分隔符*/',
- banner:'/*測試*/',
- footer:'/*文件尾信息,只会出现一次*/'
- },
- /* *//*合并成一个文件*//*
- dist:{
- src:['src/a.js','src/b.js'],
- dest:'dist/built.js'
- },*/
- basic_and_extras: {
- files: {
- 'dist/basic.js': ['src/a.js'],
- 'dist/with_extras.js': ['src/b.js', 'src/c.js']
- }
- }
- }
- });
- grunt.loadNpmTasks('grunt-contrib-concat');
- grunt.registerTask('default', ['concat']);
- };
更多的例子可以在 /node_modules/grunt-contrib-contact/contact-examples.md 查看
(三)检测语法知识 grunt-contrib-jshint
该插件用于检测文件中的js语法问题。
Gruntfile.js 里如下:
- module.exports=function(grunt){
- grunt.initConfig({
- jshint:{
- all:['src/b.js']
- }
- });
- grunt.loadNpmTasks('grunt-contrib-jshint');
- grunt.registerTask('default',['jshint']);
- };
如果你确实分号,会有如下提示
如果需要忽视这个,只需要
- jshint: {
- /* options: {
- '-W033': true
- },
- all:['src/b.js']*/
- ignore_warning: {
- options: {
- '-W033': true
- },
- src: ['src/b.js']
- }
- }
以上两种方式都可以忽略 缺少分号 语法错误。
至于类似于 'W033' 这样的警告编码具体含义,可以查看 /node_modules/jshint/src/message.js 。
(四)样式文件 grunt-contrib-cssmin
Gruntfle.js代码如下
- module.exports=function(grunt){
- console.log(grunt);
- grunt.initConfig({
- cssmin: {
- compress: {
- files: {
- 'dest/car.min.css': [
- "src/css/a.css",
- "src/css/b.css"
- ]
- }
- }
- }
- });
- grunt.loadNpmTasks('grunt-contrib-cssmin');
- grunt.registerTask('default', ['cssmin']);
- };
进入文件所在根目录,输入 grunt 或 grunt cssmin --debug ,执行样式文件压缩。
grunt 基本使用使用(一)。的更多相关文章
- 初学seaJs模块化开发,利用grunt打包,减少http请求
原文地址:初学seaJs模块化开发,利用grunt打包,减少http请求 未压缩合并的演示地址:demo2 学习seaJs的模块化开发,适合对seajs基础有所了解的同学看,目录结构 js — —di ...
- grunt配置任务
这个指南解释了如何使用 Gruntfile 来为你的项目配置task.如果你还不知道 Gruntfile 是什么,请先阅读 快速入门 指南并看看这个Gruntfile 实例. Grunt配置 Grun ...
- 快速开发Grunt插件----压缩js模板
前言 Grunt是一款前端构建工具,帮助我们自动化搭建前端工程.它可以实现自动对js.css.html文件的合并.压缩等一些列操作.Grunt有很多插件,每一款插件实现某个功能,你可以通过npm命名去 ...
- 是时候搁置Grunt,耍一耍gulp了
也算是用了半年Grunt,几个月前也写过一篇它的入门文章(点此查看),不得不说它是前端项目的一个得力助手.不过技术工具跟语言一样日新月异,总会有更好用的新的东西把旧的拍死在沙滩上(当然Grunt肯定没 ...
- 应用Grunt自动化地优化你的项目前端
在不久前我曾写了一篇 应用r.js来优化你的前端 的文章,为大家介绍了r.js这个实用工具,它可以很好地压缩.合并前端文件并打包整个项目.但是如果将r.js放到项目中,我们不得不顾及到一个问题——项目 ...
- Grunt(页面静态引入的文件地址的改变探究)-V2.0
相关插件的引用: grunt-usemin 对页面的操作 grunt-contrib-cssmin 压缩css load-grunt-tasks 瘦身gruntfile grunt-rev给md5 ...
- Grunt基本使用-V1.0
浅语:grunt中文网:http://www.gruntjs.net/ 第一步:Grunt 依赖 Node.js 所以在安装之前确保你安装了 Node.js.然后开始安装 Grunt. 实际上,安装的 ...
- nodejs、npm、grunt——名词解释
最近着手开发一个新项目,打算从工程化的角度整理一套自己的前端开发.发布体系. grunt这些工具,之前别人用我也用,并没有认真想过它们的前世今生,正好趁着这个机会,我来理一理目前业界比较流行这些工具的 ...
- grunt自定义任务——合并压缩css和js
npm文档:www.npmjs.com grunt基础教程:http://www.gruntjs.net/docs/getting-started/ http://www.w3cplus.com/to ...
- Grunt学习使用
原文地址:Grunt学习使用必看 grunt简介神马的不多说,到处一大堆. 我只说说我已经实现了的代码. 按照官方的教程 相信已经配置好了,接下来说 package.json 和 Gruntfile. ...
随机推荐
- ssh那些事儿
第一次使用ssh是上学期搭建hadoop集群的时候,当时照着各种配置文档费了九牛二虎之力终于把环境搭建成功,现在想想当时还真是不容易呢.好了废话不扯了,进入正题. 计算机发展早期能实现两台机器之间的通 ...
- oracle加并行参数PARALLEL
select /*+ PARALLEL(t,4) */ * from table1
- linux yum 命令
linux yum 命令 yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器. 基於RPM包管理,能够从指 ...
- Orcle基本语句(三)
COMMIT; --查询表内所有内容 SELECT * FROM stu_info; --查询部分列,并赋予别名 SELECT stu_id 学生标号,stu_name 学生姓名 FROM stu_i ...
- <读书笔记>软件调试之道 :问题的核心-修复后的反思
声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! ---------------------------------------- ...
- 深入理解JS异步编程五(脚本异步加载)
异步脚本加载 阻塞性脚本 JavaScript在浏览器中被解析和执行时具有阻塞的特性,也就是说,当JavaScript代码执行时,页面的解析.渲染以及其他资源的下载都要停下来等待脚本执行完毕 浏览器是 ...
- jsp调试小技巧
console.log($("#toolbar")); 打印对象可知道这个对象的参数信息
- weedfs getsockopt: connection timed out
启动master weed master -ip 10.191.197.133 -mdir /namenode -ip.bind 10.191.197.133 I0809 16:53:51 7721 ...
- jquery实现章节目录效果
<html><head><title>jquery实现章节目录效果</title> <script type="text/javascr ...
- 网络同步带来的bug
说一下之前遇到的bug,首先贴点代码 public class TcpSession : ITcpSession { private Socket _appSession; private AutoR ...