grunt学习二
1. 新建文件和文件目录
mkdir grunt-in-action
cd grunt-in-action
cd grunt-in-action
mkdir grunt-empty
cd grunt-empty vim index.html
mkdir js
cd js
vim index.js
cd ..
2. npm和grunt初始化
npm init
npm install grunt --save-dev
npm install //如果想要node_module,就 加载
3. 安装task
npm install load-grunt-tasks --save-dev npm install time-grunt --save-dev npm install grunt-contrib-copy --save-dev npm install grunt-contrib-clean --save-dev
4. 写入好配置
'use strict';
module.exports = function (grunt) {
//引入执行task的grunt插件或者叫做module
require('load-grunt-tasks')(grunt);
//引入执行事件显示grunt的模块
require('time-grunt')(grunt);
var config = {
app: 'app', //app 代表app目录
dist: 'dist' //dist 代表dest目录
}
grunt.initConfig({
config: config,
//copy任务
copy: {
/*
//字符串形式的
dist_html: {
//src 表示源文件
src: '<%= config.app %>/index.html',
//dest 表示布标文件
dest: '<%= config.dist %>/index.html'
},
dist_js: {
src: '<%= config.app %>/js/index.js',
dest: '<%= config.dist %>/js/index.js'
}
*/
/*
//数组形式
dist: {
files: [
{
src: '<%= config.app %>/index.html',
dest: '<%= config.dist %>/index.html'
},
{
src: '<%= config.app %>/js/index.js',
dest: '<%= config.dist %>/js/index.js'
}
]
}*/
//对象简直对
dist: {
/*files: {
'<%= config.dist %>/index.html':'<%= config.app %>/index.html',
'<%= config.dist %>/js/index.js': ['<%= config.app %>/js/index.js']
}*/
files: [
{
expand: true,
cwd: '<%= config.app %>/', //表示源码目录
// src: '*.html',
src: '**/*.js',
dest: '<%= config.dist %>/', //表示目标路
ext: '.js', //后缀名匹配
// extDot: 'first' //表示文件名第一个点之后内容与src匹配
extDot: 'last',//表示文件名最后一个点之后的内容与src匹配
flatten: true, //表示平铺,意思在dist目录下就生成了,而不再生成目标子级目录
rename: function(dest,src){ //重命名
/*
* rename 要在ext extdot flatten开启才有效
* dest 表示目标目录
* src 表示文件名
* */
return dest + 'js/' + src;
},
}
]
}
},
//清楚任务,注意看英语单词就能理解其意思
clean: {
dist: {
/*
src: '<%= config.dist %>',
*/
//这里面的*类似正则
src: ['<%= config.dist %>/**/*'],
// src: '<%= config.dist %>/'
//额外参数
/*
* filter: fn(param1);
*param1 表示文件目录
* */
// filter: function (filepath) {
// return (!grunt.file.isDir(filepath));
// }
/*
* nonull
* dot
* matchBase
* expand
* */
}
}
});
};
5.运行grunt
grunt copy //运行copy task grunt clean //运行clean task
6.最终的目录结构

grunt学习二的更多相关文章
- Grunt 学习笔记【2】---- 配置和创建任务
本文主要讲Grunt任务配置. 说明:本文所有示例都基于Grunt 0.4.5版本. 一 说明 使用Grunt实现项目的打包等工程化工作,实际上是通过Grunt提供的机制和插件,配置一个个任务(例如: ...
- Grunt学习使用
原文地址:Grunt学习使用必看 grunt简介神马的不多说,到处一大堆. 我只说说我已经实现了的代码. 按照官方的教程 相信已经配置好了,接下来说 package.json 和 Gruntfile. ...
- emberjs学习二(ember-data和localstorage_adapter)
emberjs学习二(ember-data和localstorage_adapter) 准备工作 首先我们加入ember-data和ember-localstorage-adapter两个依赖项,使用 ...
- ReactJS入门学习二
ReactJS入门学习二 阅读目录 React的背景和基本原理 理解React.render() 什么是JSX? 为什么要使用JSX? JSX的语法 如何在JSX中如何使用事件 如何在JSX中如何使用 ...
- TweenMax动画库学习(二)
目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) Tw ...
- Hbase深入学习(二) 安装hbase
Hbase深入学习(二) 安装hbase This guidedescribes setup of a standalone hbase instance that uses the local fi ...
- Struts2框架学习(二) Action
Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器 ...
- Python学习二:词典基础详解
作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7862377.html 邮箱:moyi@moyib ...
- Quartz学习--二 Hello Quartz! 和源码分析
Quartz学习--二 Hello Quartz! 和源码分析 三. Hello Quartz! 我会跟着 第一章 6.2 的图来 进行同步代码编写 简单入门示例: 创建一个新的java普通工程 ...
随机推荐
- VS调试DLL代码使用”附加到进程“
如果一个DLL解决方案,被另一个DLL2解决方案依赖,DLL2被可执行程序exe1引用 如何调试DLL的代码断点呢 1.可以参考另一篇随笔DLL如何调试 2.先运行起来exe1,然后再DLL项目中”调 ...
- SQL-游标-查询数据库中的所有表的数据个数
--sql语句-游标等使用 ) ) declare @i INT ) declare @cstucount INT --上方设置变量 --初始值 declare mCursor cursor --设置 ...
- chorme 浏览器记住密码后input黄色背景处理
使用chrome浏览器选择记住密码的账号,输入框会自动加上黄色的背景,有些设计输入框是透明背景的,需要去除掉这个黄色的背景: 方法1:阴影覆盖 input:-webkit-autofill { -we ...
- SSL & TLS & STARTTLS
https://www.fastmail.com/help/technical/ssltlsstarttls.html SSL vs TLS vs STARTTLS There's often qui ...
- set数组去重
new Set const arr = [{name:"wo"},{name:"shi"},{name:"wo"}] console.log ...
- rc.sysinit 解析
$# :它可抓出 positional parameter 的數量,即脚本后面的参数有几个 $@和$*表示全部参数,但不包含脚本名,即$0,如果在command line上跑 my.sh p1 “p2 ...
- vue开发 - 将方法绑定到window对象,给app端调用
通过jsBridge方法,H5可以调用客户端(ios,android)的内部方法,同样,客户端也需要能调用H5页面里定义的js方法,但是在vue里,所有的方法都是在组件内部声明的,也只能在组件内部调用 ...
- C程序设计语言习题(3-5)
编写函数itob(n,s,b),将整数n转换为以b为底的数,并将转换结果以字符的形式保存到字符串s中.e.g.itob(n,s,16)把整数n格式化为十六进制整数保存在s中. #include< ...
- C语言位操作初步
位操作允许程序员对单独的位进行操作,例如,早某些机器上,短整型占16位,位操作将每一位单独操作. 位操作允许程序员设置.清除.测试与其他的操作,这些操作如下表: 操作 含义 & 按位与 | 按 ...
- 使用iLO远程管理HP系列服务器
iLO是Integrated Ligths-out的简称,是HP服务器上集成的远程管理端口,它是一组芯片内部集成vxworks嵌入式操作系统,通过一个标准RJ45接口连接到工作环境的交换机.只要将服务 ...