Grunt快速使用笔记
本篇文章由:http://xinpure.com/grunt-quick-note/
http://www.gruntjs.net/getting-started Grunt中文网
安装 Grunt 命令行
npm install -g grunt-cli
注意,安装grunt-cli并不等于安装了 Grunt!Grunt CLI的任务很简单:调用与Gruntfile在同一目录中 Grunt。这样带来的好处是,允许你在同一个系统上同时安装多个版本的 Grunt。
Grunt 会在具体的工作目录中进行安装
添加 Gruntfile.js/Gruntfile.coffee
Grunt 官方案例:
module.exports = function(grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        concat: {
            options: {
                separator: ';'
            },
            dist: {
                src: ['src/**/*.js'],
                dest: 'dist/<%= pkg.name %>.js'
            }
        },
        uglify: {
            options: {
                banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'
            },
            dist: {
                files: {
                    'dist/<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>']
                }
            }
        },
        qunit: {
            files: ['test/**/*.html']
        },
        jshint: {
            files: ['Gruntfile.js', 'src/**/*.js', 'test/**/*.js'],
                options: {
                //这里是覆盖JSHint默认配置的选项
                globals: {
                    jQuery: true,
                    console: true,
                    module: true,
                    document: true
                }
            }
        },
        watch: {
            files: ['<%= jshint.files %>'],
            tasks: ['jshint', 'qunit']
        }
    });
    grunt.loadNpmTasks('grunt-contrib-concat'); //文件合并模块
    grunt.loadNpmTasks('grunt-contrib-uglify'); //文件压缩模块
    grunt.loadNpmTasks('grunt-contrib-qunit');  //文件测试模块
    grunt.loadNpmTasks('grunt-contrib-jshint'); //文件检测模块
    grunt.loadNpmTasks('grunt-contrib-watch');  //文件监听模块
    grunt.registerTask('test', ['jshint', 'qunit']); //grunt test命令 执行此任务
    grunt.registerTask('default', ['jshint', 'qunit', 'concat', 'uglify']);  //grunt命令,执行的默认任务
};
根据具体的工作目录,对以上配置进行调整(主要就是修改文件路径),按需求调整 grunt 任务。
添加 package.json
方式一:手动创建 package.json 文件
{
  "name": "my-project-name",
  "version": "0.1.0",
  "devDependencies": {
    "grunt": "^0.4.5",
    "grunt-contrib-concat": "^0.5.1",
    "grunt-contrib-jshint": "^0.11.2",
    "grunt-contrib-qunit": "^0.7.0",
    "grunt-contrib-uglify": "^0.9.1",
    "grunt-contrib-watch": "^0.6.1"
  }
}
可通过 npm install 命令,直接安装 devDependencies 中的所有模块
方式二:使用 npm init 创建(步骤略繁琐,但自我感觉思路更清晰)
此命令会创建一个基本的 package.json 文件(一种命令行的配置方式)
input:
npm init
output:
name: (grunt_test)
version: (1.0.0)
description: This is grunt test
entry point: (Gruntfile.js)
test command: grunt
git repository:
keywords: test
author: xinpureZhu
license: (ISC)
About to write to /Project/grunt_test/package.json:
{
  "name": "grunt_test",
  "version": "1.0.0",
  "description": "This is grunt test",
  "main": "Gruntfile.js",
  "scripts": {
    "test": "grunt"
  },
  "keywords": [
    "test"
  ],
  "author": "xinpureZhu",
  "license": "ISC"
}
这样 package.json 文件就创建好了,接下来就是一个一个模块的安装(相对方式一的一次性安装,略麻烦的地方)
input:
npm install grunt --save-dev
npm install grunt-contrib-uglify --save-dev
npm install grunt-contrib-jshint --save-dev
npm install grunt-contrib-qunit --save-dev
npm install grunt-contrib-watch --save-dev
npm install grunt-contrib-concat --save-dev
npm install <module> --save-dev 在安装模块的同时,还会自动将其添加到 package.json 文件的 devDependencies 配置段中
开始使用 Grunt
package.json和Gruntfile都必须存放在项目的根目录下
执行 grunt 命令,就会执行 Gruntfile 文件里配置的 default 任务
使用过程中可能会存在 warnings, 可以使用 grunt --force 忽略这些警告。
在写项目的过程中,可以执行 grunt watch 监听文件,当文件被修改时,自动执行 文件合并、文件压缩等操作(按需求配置 watch tasks)
Grunt快速使用笔记的更多相关文章
- Knockout.js快速学习笔记
		
原创纯手写快速学习笔记(对官方文档的二手理解),更推荐有时间的话读官方文档 框架简介(Knockout版本:3.4.1 ) Knockout(以下简称KO)是一个MVVM(Model-View-Vie ...
 - Angular快速学习笔记(2) --  架构
		
0. angular 与angular js angular 1.0 google改名为Angular js 新版本的,2.0以上的,继续叫angular,但是除了名字还叫angular,已经是一个全 ...
 - Angular 快速学习笔记(1) -- 官方示例要点
		
创建组件 ng generate component heroes {{ hero.name }} {{}}语法绑定数据 管道pipe 格式化数据 <h2>{{ hero.name | u ...
 - C#快速入门笔记(1)——基础语法
		
C#快速入门笔记(1)——基础语法 总体框架:
 - keras搭建神经网络快速入门笔记
		
之前学习了tensorflow2.0的小伙伴可能会遇到一些问题,就是在读论文中的代码和一些实战项目往往使用keras+tensorflow1.0搭建, 所以本次和大家一起分享keras如何搭建神经网络 ...
 - grunt快速入门
		
快速入门 Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.:奇数版本 ...
 - Pandas快速入门笔记
		
我正以Python作为突破口,入门机器学习相关知识.出于机器学习实践过程中的需要,我快速了解了一下提供了类似关系型或标签型数据结构的Pandas的使用方法.下面记录相关学习笔记. 数据结构 Panda ...
 - NumPy快速入门笔记
		
我正以Python作为突破口,入门机器学习相关知识.出于机器学习实践过程中的需要,我快速了解了一下NumPy这个科学计算库的使用方法.下面记录相关学习笔记. 简介 NumPy是一个科学计算库.结合Py ...
 - Spring Boot 快速入门笔记
		
Spirng boot笔记 简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发 ...
 
随机推荐
- 【高精度】【找规律】Gym - 101243B - Hanoi tower
			
题意:给你一个经典的汉诺塔递归程序,问你最少几步使得三个柱子上的盘子数量相同.(保证最开始盘子数量可以被3整除) 规律:ans(n)=2^(2*n/3-1)+t(n/3). t(1)=0. t(n)= ...
 - [CF843D]Dynamic Shortest Path
			
[CF843D]Dynamic Shortest Path 题目大意: 给定一个带权有向图,包含\(n(n\le10^5)\)个点和\(m(m\le10^5)\)条边.共\(q(q\le2000)\) ...
 - Activity(活动)生命周期(2)--活动状态
			
每个活动在其生命周期中最多会有4种状态 一.运行状态 当一个活动位于返回栈的栈顶的时候,这时活动就处于运行状态.系统一般不会回收,因为这会带来非常差的用户体验 二.暂停状态 当一个活动不处于栈顶状态的 ...
 - [转载]c++常用字符串操作函数
			
原文地址:c++常用字符串操作函数作者:Valsun 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source ...
 - ob_flush()和flush()和ob_implicit_flush(true)
			
http://www.jb51.net/article/16215.htm 第一: “ob_flush()和flush()的区别.前者是把数据从PHP的缓冲中释放出来,后者是把不在缓冲中的或者说是被释 ...
 - insert失败自动执行update(duplicate先insert)
			
例如:有一张表 字段有 id主键自增,或者唯一索引:datetime时间 name名字 INSERT INTO TABLE (id,datetime) VALUES (1,1440000000), ...
 - Ubuntu中APache+mod_pyhon
			
安装apache 1.sudo apt-get install Apache2 Apxs(Apache extension tool既apache扩展模块的工具)的安装: 1.sudo apt-get ...
 - 把网页转换成图片或者pdf--wkhtmltopdf
			
一.下载并安装wkhtmltopdf https://wkhtmltopdf.org/downloads.html 按照需要自己下载安装就可以了: 二.使用步骤--启动和生成图片或pdf 1.下载wk ...
 - sql语句 -- 倒序 升序
 - 手机APP上中下三层
			
代码如下: <template> <div class="container" id="app"> <header> < ...