自动化构建工具grunt的学习
关于grunt的一些记录,记的比较乱。。。
0.删除node_modules文件夹
命令行:
npm install rimraf -g //先运行
rimraf node_modules //然后运行
1.安装grunt及插件
安装grunt:
npm install grunt --save-dev
安装插件,不需要的可以删除:
npm install --save-dev grunt-contrib-cssmin grunt-contrib-uglify grunt-contrib-watch grunt-contrib-copy
2.插件介绍
grunt-contrib-jshint:javascript语法错误检查;
grunt-contrib-watch:实时监控文件变化、调用相应的任务重新执行;
grunt-contrib-uglify:JS文件压缩
grunt-contrib-cssmin:css文件压缩
grunt-contrib-copy:复制文件、文件夹
grunt-contrib-clean:清空文件、文件夹
grunt-contrib-concat:合并多个文件的代码到一个文件中
grunt-contrib-htmlmin: HTML文件压缩
3.—save-dev

“—save-dev”的意思是,在当前目录安装grunt的同时,顺便把grunt保存为这个目录的开发依赖项。
上文在配置package.json时,其中的“devDependencies”中就会存储开发依赖项。
在学习grunt中,遇到的一些教程链接:
npm的package.json中文文档:https://github.com/ericdum/mujiang.info/issues/6
grunt入门教程:http://www.cnblogs.com/wangfupeng1988/p/4561993.html
grunt常用插件及示例说明:http://blog.csdn.net/ligang2585116/article/details/53790043
我配置的Gruntfile.js文件
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
clean: {
build: ['build']
},
copy: {
main: {
files: [
{
expand: true,
cwd: 'www',
src: '**',
dest: 'build',
flatten: false,
filter: 'isFile'
}
]
}
},
uglify: {
main: {
options: {
sourceMap: false
},
files: [
{
expand: true,
cwd: 'build/src/js/',
src: ['**/*.js', '!**/*.min.js'],
dest: 'build/src/js/'
},
{
expand: true,
cwd: 'build/src/libs/',
src: ['*.js', '!*.min.js'],
dest: 'build/src/libs/'
},
{
expand: true,
cwd: 'build/src/libs/jquery',
src: ['*.js', '!*.min.js'],
dest: 'build/src/libs/jquery'
},
{
expand: true,
cwd: 'build/src/libs/layui/lay/modules',
src: ['*.js', '!*.min.js'],
dest: 'build/src/libs/layui/lay/modules'
},
{
expand: true,
cwd: 'build/src/libs/layui',
src: ['*.js', '!*.min.js'],
dest: 'build/src/libs/layui'
}
]
}
},
cssmin: {
/* minify: {
expand: true,
cwd: 'demo/resources/css',
src: ['*.css', '!*.min.css'],
dest: 'build/resources/css'
} */
main: {
files: [
{
expand: true,
cwd: 'build/src/css',
src: ['*.css', '!*.min.css'],
dest: 'build/src/css'
}
]
},
easyUI: {
files: [
{
expand: true,
cwd: 'build/src/libs/easyUI',
src: ['*.css', '!*.min.css'],
dest: 'build/src/libs/easyUI'
}
]
}
},
watch: {
options: {
livereload: true
},
build: {
files: ['www/src/*.html', 'www/src/js/**/*.js', 'www/src/css/*.css'],
tasks: ['uglify', 'cssmin:main'],
options: {
spawn: false
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default', ['clean', 'copy', 'cssmin', 'watch']);
//grunt.registerTask('default', ['clean']);
};
自动化构建工具grunt的学习的更多相关文章
- 前端开发自动化工作流工具,JavaScript自动化构建工具grunt、gulp、webpack介绍
前端开发自动化工作流工具,JavaScript自动化构建工具grunt.gulp.webpack介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为 ...
- JavaScript自动化构建工具grunt、gulp、webpack介绍
前端开发自动化工作流工具,JavaScript自动化构建工具grunt.gulp.webpack介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为 ...
- 前端自动化构建工具Grunt
一.了解Gurnt(http://www.open-open.com/lib/view/open1433898272036.html) Grunt 是一个基于任务的JavaScript工程命令行构建工 ...
- 浅谈自动化构建之grunt
自动化构建 开发行业的自动化构建 一句话把源代码转化为生产代码,作用是脱离运行环境兼容带来的问题开发阶段使用提高效率的语法,规范 和标准,构建转换那些不被支持的特性转化成能够执行的代码. 一.简单的自 ...
- JavaScript自动化构建工具入门----grunt、gulp、webpack
蛮荒时代的程序员: 做项目的时候,会有大量的js 大量的css 需要合并压缩,大量时间需要用到合并压缩 在前端开发中会出现很多重复性无意义的劳动 自动化时代的程序员: 希望一切都可以自动完成 ...
- 前端自动化构建工具 gulp 学习笔记 一、
一.我对gulp的初期理解 是一种前端辅助开发工具 可以帮你把js,css,img等文件 合并.压缩,图片好像是合并为精灵图,合并为精灵图之后,还会生成一个css样式表. 官方解说是:基于流的自动化构 ...
- 前端自动化构建工具gulp的使用总结
前端自动化构建工具gulp的使用总结 博主最近偶的空闲,在此对gulp的使用做一个总结,让小伙伴知道如何合理的使用gulp以及gulp的使用技巧. 谈到gulp,有人可能就会想到另外一个构建工具gru ...
- 前端自动化构建工具-yoman浅谈
如今随着前端技术的飞速发展,前端项目也变得越来越复杂. 快速的搭建一个集成多种工具和框架的复杂前端项目也越来越成为一种需求. 当然如果你要自己从0开始完全自己diy,绝对可以,只不过需要耗费一些不少的 ...
- 前端构建工具Gulp的学习和使用
前几天刚鼓捣了Grunt的使用,结果文档还没捂热,老大说我们还是用gulp吧,搞得我又得来整gulp,眼泪流成河了,真是不晓得底层人民的辛苦啊.不过经过对gulp的学习,发现很好用,比grunt舒服! ...
随机推荐
- MySQL:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
解决方法: 修改密码:alter user 'root'@'localhost' identified by '123456'; mysql> use mysql; ERROR 1820 (HY ...
- dubbo配置清单-超详细版
服务发布者 在服务发布者的springboot主配置文件application.properties中添加dubbo配置 #dubbo服务名 spring.dubbo.application.name ...
- MVC设计模式实现权限管理登录,超详细
功能实现:在页面输入给定的用户名之一,可以显示当前用户的权限,也可以在页面更改该用户的权限,更新之后保存.像下面这样. 填写用户名提交: 显示用户AAA的权限: 修改权限(增加article3): 点 ...
- IndexedDB(二:索引)
在HTML5本地存储--IndexedDB(一:基本使用)中介绍了关于IndexedDB的基本使用方法,很不过瘾,这篇我们来看看indexedDB的杀器--索引. 熟悉数据库的同学都知道索引的一个好处 ...
- 移动端meta标签的使用和设置
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale= ...
- Idea15 常用设置(一):JDK、SVN
1:显示行号 File->Settings->General->Appearance 2: 代码自动补齐即使是小写字母也会弹出代码补齐提示 3:自动编译 设置 4: 设 ...
- 回溯法最优装载问题(java)
1.问题描述: 有一批共有 n 个集装箱要装上两艘载重量分别为 c1 和 c2 的轮船,其中集装箱 i 的重量为 w[i], 且重量之和小于(c1 + c2).装载问题要求确定是否存在一个合 ...
- 部署node.js的开发环境
1.进入Node.js的官方网站下载安装包: http:nodejs.org 2.安装后打开cmd的dos窗口(在path环境变量中查看到有nodejs说明安装成功): 3.运行node.
- Echarts实现隐藏x轴,y轴,刻度线,网格
"yAxis": [ { //就是一月份这个显示为一个线段,而不是数轴那种一个点点 "show" : true, "boundaryGap" ...
- python 替换指定目录下,所有文本字符串
网页保存后,会把js文件起名为.下载,html里面的引用也会有,很不美观,解决方案:用python替换字符串 import os import re """将当前目录下所 ...