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 ...
随机推荐
- apache 子域名自动与子域名同名的目录绑定
假设有域名domain.com,已经泛解析子域名*.domain.com到该主机的ip,web根目录为/var/www/,在访问a.domain.com时,能自动绑定/var/www/a/目录,访问b ...
- python学习,day4:装饰器的使用示例2
这个例子比较复杂 # coding=utf-8 # Author: RyAn Bi user,passwd = ' #输入用户名密码 def auth(auth_type): #装饰器第一层,确定鉴权 ...
- Mac 10.12安装Go2Shell在资源管理器快速打开Shell并跳转到指定位置
下载: (链接: https://pan.baidu.com/s/1qXAUqxY 密码: bf7g)
- express后端和fetch前端的json数据传递
在使用express做后端,前端使用fetch API来请求后端时,一般都是用 JSON 数据进行通信的. 下面是一个简单的例子: 前端: if (up) { var passwordAgain = ...
- Wrapper配置详解及高级应用(转)
转自:http://286.iteye.com/blog/1921414 将一个简单的程度如HelloWorld 的应用包装秤Wrapper 服务并不复杂,甚至可以认为非常简单.但是实际项目应用过程中 ...
- java.lang.IllegalStateException: Unknown Priority XXXX 的解决方法
异常信息: java.lang.IllegalStateException: Unknown Priority SYS_ERR_SMS at org.apache.log4j.Category.pri ...
- TortoiseGit学习系列之TortoiseGit基本操作克隆项目(图文详解)
前面博客 全网最详细的Git学习系列之介绍各个Git图形客户端(Windows.Linux.Mac系统皆适用ing)(图文详解) 全网最详细的Git学习系列之安装各个Git图形客户端(Windows. ...
- C 扩展库 - sqlite3 API
sqlite3 API Summary sqlite3 The database connection object. Created by sqlite3_open() and destroyed ...
- EF4.4增删改查实例
第一.先创建一个名为Store数据库,将下面脚本代码执行创建表: USE [Store] GO /****** Object: Table [dbo].[Category] Script Date: ...
- HDU 6225 Little Boxes
Little Boxes Little boxes on the hillside. Little boxes made of ticky-tacky. Little boxes. Little ...