Grunt入门学习之(1) -- 环境安装
Grunt入门学习(1) - 环境安装
这周根据项目需要,在项目的基础上分模块开发了一个小的项目板块,但是在规范组织每个模块的代码和其依赖性时比较麻烦,需要一个项目板块的构建工具。各个模块都包括其对应的html页面模板、css样式表、Javascript文件,以及相关的依赖文件,图片等。
具体的目录结构如下图所示:
往往在代码上传和项目发布之前需要将模块内各个文件比如JavaScript文件、CSS样式表,图片等进行压缩合并,目的主要在于减少加载文件的大小,加快文件加载速度,同时也能在一定程度上保护源代码,提高安全性。Grunt是一个基于node.JS的自动化构建工具。对于需要反复重复的任务,例如代码压缩(minification),合并、编译、文件拷贝、单元测试、linting等,自动化工具可以减轻你的劳动,简化你的工作。只要在 Gruntfile 文件正确配置好了任务,任务运行器就会自动帮你或你的小组完成大部分无聊的工作。
下面开始学习Grunt来实现将VariableMessageSignManagement目录下的所有模块自动拷贝到compressedFiles目录,并且尽可能的压缩每个模块的资源文件。
1.首先安装grunt-cli, grunt 以及所需的grunt插件
要使用grunt,首先需要安装grunt-cli到全局环境中,在命令行窗口中执行如下命令:
- npm install -g grunt-cli //这条命令执行完后,grunt 命令就被加入到你的系统路径中了,以后就可以在任何目录下执行与grunt相关的命令了。
注意,安装grunt-cli并不等于安装了 Grunt!Grunt CLI的任务很简单:调用与Gruntfile在同一目录中 Grunt。这样有一个好处是,允许你在同一个系统上同时安装多个版本的 Grunt。这样就能让多个版本的 Grunt 同时安装在同一台机器上。
然后进入项目根目录(此处我将VariableMessageSignManagement的父目录作为的根目录)。
根目录具体如图:。
(1) 在根目录下新建两份文件:package.json
和 Gruntfile.js //package.json文件名是固定的,必须是这个;Gruntfile.js文件名不固定,可以按个人爱好自己设定,但建议用此名,醒目!
package.json 文件被用于列出项目依赖的grunt和Grunt插件版本,放置于devDependencies配置段内。Gruntfile.js 用来配置或定义任务(task)并加载Grunt插件的,一般是JS文件或者coffee文件。
新建的package.json文件,里面内容是编辑器自行填写的,不用管;而Gruntfile.js文件内是空的,什么都没有!
(2) 执行如下命令开始安装grunt 以及相关的grunt插件:
- npm install grunt –-save-dev //这条命令是安装最新版的grunt到项目根目录,--save-dev 表示将其添加到package.json文件的devDependencies内。同时会在根目录新建node_modules目录,存放grunt等的功能文件。如下图所示:
同样,grunt插件和其它node模块都可以按相同的方式安装,并自动添加到devDependencies内。在此我安装了几个常用的grunt插件
- npm install grunt-contrib-copy –-save-dev //复制文件和文件夹
- npm install grunt-contrib-htmlmin –-save-dev //压缩HTML文件
- npm install grunt-contrib-uglify –-save-dev //压缩JS文件
- npm install grunt-contrib-cssmin –-save-dev //压缩CSS文件。
- npm install grunt-contrib-imagemin –-save-dev //压缩PNG,JPEG和GIF等图像
装完这四个grunt插件后,devDependencies配置如左图所示!
2.其次编写Gruntfile.js任务文件
Gruntfile.js
或 Gruntfile.coffee
文件是有效的 JavaScript 或 CoffeeScript 文件。应当放在项目根目录中,和package.json
文件在同一目录级,并和项目源码一起加入源码管理器。
Grunt入门学习之(1) -- 环境安装的更多相关文章
- openresty 学习笔记一:环境安装
openresty 学习笔记一:环境安装 openresty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭 ...
- Redis入门学习(一)——安装配置
最近马上要找实习了,听学长说他们公司里用了redis来解决缓存问题,在大三结束前来学习一下. 问:Redis是什么? 答:(官方)REmote DIctionary Server(Redis)是一个K ...
- Docker容器学习梳理 - 基础环境安装
以下是centos系统安装docker的操作记录 1)第一种方法:采用系统自带的docker安装,但是这一般都不是最新版的docker安装epel源[root@docker-server ~]# wg ...
- grunt 入门学习
前端工作流,Grunt上手指南 Posted@2013-04-20 7:15 a.m. CategoriesGrunt , javascript 我想先花点时间回忆一下作为一个前端需要做的工作(Lo ...
- NOSQL Mongo入门学习笔记 - MongoDB的安装(一)
手上的工作不是很忙,所以来学习学习很久就像接触的MongoDb,无奈前段时间工作时间都比较多.记录在这里供以后参考 环境: Centos 7 64位 开始: 1. 在官网下载Mongo : wget ...
- MongoDB入门学习(一)—— 安装和启动
最近由于工作需要,开始学习MongoDB数据库了.第一篇博文就从这里开始吧,以此记录下学习中的点点滴滴,为自己加油呢! (一) MongoDB简介 网上搜搜了一下:(来源:http://www.run ...
- Linux学习第二步(Java环境安装)
jdk版本:jdk-8u131-linux-x64.rpm 注:以下操作在root用户或具有root权限的用户下操作 一.将 dk-8u131-linux-x64.rpm拷贝到/home目录下 cp ...
- Python爬虫入门教程 1-100 CentOS环境安装
简介 你好,当你打开这个文档的时候,我知道,你想要的是什么! Python爬虫,如何快速的学会Python爬虫,是你最期待的事情,可是这个事情应该没有想象中的那么容易,况且你的编程底子还不一定好,这套 ...
- web自动化测试python+selenium学习总结----python环境安装
一.python下载地址:https://www.python.org/downloads/ 二.双击python的.exe文件安装: 后面直接点击“next” 步骤二:选择安装在D:\python3 ...
随机推荐
- 新手入门贴之基于 python 语言的接口自动化 demo 小实战
大家好,我是正在学习接口测试的菜鸟.近期通过自己的学习,完成了一个关于测试接口的接口自动化demo.下面想跟大家分享一下,主要的思路是根据接口文档确定测试用例,并将测试用例写在excel中.因为只是小 ...
- Java NIO学习与记录(七): Reactor单线程模型的实现
Reactor单线程模型的实现 一.Selector&Channel 写这个模型需要提前了解Selector以及Channel,之前记录过FileChannel,除此之外还有以下几种Chann ...
- 逆向学习-Windows消息钩取
钩子 Hook,就是钩子.偷看或截取信息时所用的手段或工具. 消息钩子 常规Windows流: 1.发生键盘输入事件时,WM_KEYDOWN消息被添加到[OS message queue]. 2.OS ...
- centos 6.6 设备 xxx 似乎不存在, 初始化操作将被延迟
2019-04-02 问题描述: centos 6.6开启虚拟机之后,网卡服务不能正常启动,报错信息为:设备 xxx(网卡名称)似乎不存在, 初始化操作将被延迟 解决办法: 清空70-persiste ...
- 天猫消息盒子的CSS实现
css: body,h2,h3,ul,p{margin:0;padding:0;font-size:12px;} li{list-style: none; } a{text-decoration: n ...
- css定位问题的记录
postion:relative是子块级元素面向父级元素的相对定位,定位关键字使用left/right/top/bottom.兄弟块元素之间相对进行定位,但是position移动后,原位置依然保留.而 ...
- 使用 JFlex
参数设置和声明段 %% 词法规则段 用户代码段这个段中的所有内容将被拷贝到生成的词法类的类声明之前.在这个段中,常见的是 package 和 import 语句.我们的词法说明在这个段中引入(impo ...
- window.location和document.location的区别分析
用户不能改变document.location(因为这是当前显示文档的位置).但是,可以改变window.location (用其它文档取代当前文档)window.location本身也是一个对象,而 ...
- ZOJ 2971 Give Me the Number
Give Me the Number Numbers in English are written down in the following way (only numbers less than ...
- 我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置
前言 在博客园里面我搜索了老半天,找相应的mini2440的裸机开发的程序,让我挺失望的就是居然没有人对做arm这块做详细的解答,到底如何去做,到底如何去配置,都不清楚,让我很纠结,那么我花了近一星期 ...