初学,目前对grunt的理解和需求仅在于简单的文件合并、压缩、语法检查,其强大功能还有待研究。

安装前环境准备

(1)grunt依赖nodejs运行环境,所以要玩grunt得先把nodejs安装好,nodejs安装复杂不?一点不复杂,文件也不大,直接下载安装即可。

  

  nodejs下载地址:http://nodejs.org/

安装grunt

(1)安装好nodejs后,就可以安装grunt。grunt安装是不是也要下载个安装文件?度娘和google发现,都是采用npm这个玩儿来安装,具体采用文件安装没研究。

  ps:npm是nodejs中包管理和分发的工具,咱们上面安装nodejs时,就安装好了,所以这里直接使用即可。

  安装grunt命令:npm install -g grunt-cli

  ps:注意一定要加-cli,文档上说这玩儿会将grunt加入到系统变量中,这样就可以到处使用了,当然如果不加,可能需要自己手动去配置环境变量

  至此:grunt安装完毕

使用grunt创建项目

  通过上面的步骤,grunt已经ok了,接下来就是用其创建项目。你可能有疑问?“哥只想用期来合并、压缩文件,用得到创建个项目吗?”。对于这个问题得先理解好grunt。

  (1)grunt是一个项目构建环境,这个有点类似于ant。grunt本身并没有提供“啥合并、压缩”功能。

  (2)这里的创建工程,其实就是grunt根据你的配置文件,加载好相关包,完成一个你想要实现的目标。比如说,你想要“合并文件”这个功能,那么就得告诉grunt,它会根据这个配置为你创建好一个具有“合并文件”功能的“可执行程序”。

那如何创建项目呢?

  

(1)得先为咱们将要创建的项目建立一个空文件夹,如“d:\javascriptDemo”,咱们后面的命令创建步骤仅在此项目下,即在这个文件夹下执行命令。

(2)上面提到,grunt创建项目要先有配置文件。也就是说在创建项目之前,咱们得先搞个配置文件,这个配置文件就是package.json。哥手上没有这玩儿,不怕,咱们的npm会创建这东西。

  执行:npm init  即可创建package.json配置文件,该命令过程中会提示输入一些参数,比如项目描述、git地址、作者、密码等,如下图,其中出现的json数据就是该文件夹的内容:

不过有点可惜,采用npm init创建的配置文件似乎不是我们所需要的“文件压缩、合并”功能的配置文件,对于这种情况,其实百度一下找个模板即可。package.json文件压缩、合并配置模板如下:

{
"name": "demo",
"file": "jquery.calendar",
"version": "0.1.0",
"description": "demo",
"license": "MIT",
"devDependencies": {
"grunt": "~0.4.1",
"grunt-contrib-jshint": "~0.6.3",
"grunt-contrib-uglify": "~0.2.1",
"grunt-contrib-requirejs": "~0.4.1",
"grunt-contrib-copy": "~0.4.1",
"grunt-contrib-clean": "~0.5.0",
"grunt-strip": "~0.2.1"
},
"dependencies": {
"express": "3.x"
}
}

(3)从配置文件中可以得知,我们在其中定义了需要处理的文件"jquery.calendar",以及一堆依赖包。ok,那现在可以创建项目了。

  执行命令:grunt install  该命令执行后,你会发现咱们的项目文件夹下多了好多东西,这些东西其实就是咱们的运行程序需要用到的文件了。

小试文件压缩功能

通过上面的步骤,咱们的grunt压缩环境已经创建好了,那现在可以试一下压缩功能了?不急!

(1)咱们的待处理文件放在哪里啊?默认是放在项目根命令下的src文件夹中,所以我们得先在根目录中建立一个"src",把需要处理的jquery.calendar.js放置其中。

(2)grunt怎么知道我是要做压缩功能呢?package.json只是配置了依赖包和待处理文件,并没说明我要做压缩功能啊?对!这个问题咱们得引入另一个文件来解决。

该文件就是Gruntfile.js。该文件是个js不是配置文件,其实可以看做是运行的入口,同样文件放置项目根目录下:

文件样例:

module.exports = function (grunt) {
// 项目配置
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
uglify: {
options: {
banner: '/*! <%= pkg.file %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
},
build: {
src: 'src/<%=pkg.file %>.js',
dest: 'dest/<%= pkg.file %>.min.js'
}
}
});
// 加载提供"uglify"任务的插件
grunt.loadNpmTasks('grunt-contrib-uglify');
// 默认任务
grunt.registerTask('default', ['uglify']);
}

ok!一切就绪,执行  grunt 命令!你会发现咱们的min文件在根目录下的dest就创建好了。

再试文件合并功能

上面的工程环境都配置好了,那么文件合并功能,按道理就是修改下配置即可了。合并文件依赖于grunt-contrib-concat插件,所以我们的package依赖项要新增一项"grunt-contrib-concat": "~0.3.0"。

{
"name": "demo",
"file": "jquery.calendar",
"version": "0.1.0",
"description": "demo",
"license": "MIT",
"devDependencies": {
"grunt": "~0.4.1",
"grunt-contrib-jshint": "~0.6.3",
"grunt-contrib-uglify": "~0.2.1",
"grunt-contrib-requirejs": "~0.4.1",
"grunt-contrib-copy": "~0.4.1",
"grunt-contrib-clean": "~0.5.0",
"grunt-strip": "~0.2.1",
"grunt-contrib-concat": "~0.3.0"
},
"dependencies": {
"express": "3.x"
}
}

咱们的运行入口也得变一下,告诉grunt,这回我要做的是文件合并,合并src下所有js。

module.exports = function (grunt) {
// 项目配置
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
concat: {
options: {
separator: ';'
},
dist: {
src: 'src/*.js',
dest: 'dest/test.js'
}
}
});
grunt.loadNpmTasks('grunt-contrib-concat');
// 默认任务
grunt.registerTask('default', ['concat']);
}

ok!执行命令 grunt

哦,no!!出现错误,提示“grunt-contrib-concat”没安装!,ok咱们就安装。

执行:npm i --save-dev grunt-contrib-imagemin

再次运行 grunt,一切ok!!

如果我们需要合并又要压缩呢,修改配置文件即可。留点给自己去研究吧..........

windows本地搭建grunt前端项目构建环境的更多相关文章

  1. windows本地搭建nginx+php+mysql+redis环境详细步骤

    1.mysql的下载和安装 这个可参考我另外一篇文章:http://www.cnblogs.com/myIvan/p/9265645.html 2.php的下载和配置修改 下载地址:https://w ...

  2. 前后端分离之前端项目构建(grunt+require+angular)

    前言 前段时间做了一个项目,前端开发页面,然后把代码给到后端同学,后端同学通过vm再来渲染页面.后来才发现,这种方式简直是太low了,因为前端代码在服务端同学那里,每次前端需要更改的时候都需要去到服务 ...

  3. Github+yeoman+gulp-angular初始化搭建angularjs前端项目框架

    在上篇文章里面我们说到了Github账号的申请与配置 那么当你有了Github账号并创建了一个自己的Github项目之后,首要的当然是搭建自己的项目框架啦! 本人对自己的定位是web前端狗,常用开发框 ...

  4. react-native —— 在Windows下搭建React Native Android开发环境

    在Windows下搭建React Native Android开发环境 前段时间在开发者头条收藏了 @天地之灵_邓鋆 分享的<在Windows下搭建React Native Android开发环 ...

  5. windows下搭建Apache+Mysql+PHP开发环境

    原文:windows下搭建Apache+Mysql+PHP开发环境 要求 必备知识 熟悉基本编程环境搭建. 运行环境 windows 7(64位); Apache2.2;MySQL Server 5. ...

  6. 【java项目实战】一步步教你使用MyEclipse搭建java Web项目开发环境(一)

    首先.在開始搭建MyEclipse的开发环境之前.还有三步工具的安装须要完毕,仅仅要在安装配置成功之后才干够进入以下的java Web项目开发环境的搭建. 1.安装工具 第一步,下载并安装JDK,到官 ...

  7. 前端项目构建工具---Grunt

    什么是Grunt? grunt是javascript项目构建工具,在grunt流行之前,前端项目的构建打包大多数使用ant.(ant具体使用 可以google),但ant对于前端而言,存在不友好,执行 ...

  8. Windows本地搭建Edusoho环境

    Windows搭建Edusoho比Linux还要轻松的多.因为有很多环境集成工具如xampp.wampserver.phpstudy等.基本上安装号wampserver工具,直接将edusoho项目扔 ...

  9. 前端项目构建之yeoman

    各位好啊,我又和大家见面了,也许你已经不记得大明湖畔的容嬷嬷,但是只要记得博客园中的我就好,希望我的博客能像一股清风,为你驱散炎热的酷暑,好了,废话不多说,开始上干货,我今天带给大家的是前端工程化开发 ...

随机推荐

  1. BestCoder Round #20 部分题解(A,B,C)(hdu5123,5124,5125)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud who is the best? Time Limit: 2000/1000 MS ...

  2. 前端学习书籍大全 包含PDF地址

    JavaScript类: javascript高级程序设计 pdf下载 ---->教程 javascript权威指南 pdf下载  ---->教程 javascript基础教程 pdf下载 ...

  3. CSS样式中,background-image 背景图片居中显示并且在不同屏幕分辨率下始终居中

    body {   margin-top:0px; margin-right:0px;   margin-bottom:0px;   margin-left:0px;   background-colo ...

  4. PHP读取EXCEL时写入数据乱码解决办法

    第一步排除excel读取的数据是不是乱码 EXCEL读取时经常会出现乱码,而我们常用的字符集是UTF-8 ,GB2312(GBK) ,这就需要对编码进行转换,但是又不能对纯数字和英文字符转换,否则会乱 ...

  5. git status简介

    git status命令可以列出当前目录所有还没有被git管理的文件和被git管理且被修改但还未提交(git commit)的文件.. 比如; git status # On branch maste ...

  6. CSS--table之min-height

    table中min-height不起作用. 但是height其实相当于min-height 超过的部分会自动撑开.

  7. 为什么选择使用 Dropbox 而不是其他品牌同步工具(不要加上多余的功能,要极致和专注)

    作者:吴锋链接:http://www.zhihu.com/question/19646859/answer/14707821来源:知乎著作权归作者所有,转载请联系作者获得授权. 窃以为楼主的问题,准确 ...

  8. Contains Duplicate II 解答

    Question Given an array of integers and an integer k, find out whether there are two distinct indice ...

  9. HDU 3634 City Planning (离散化)

    City Planning Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  10. poj 1015 Jury Compromise_dp

    题意:n个陪审团,每个陪审团有x,y值,选出m个陪审团,要求 (sum(xi)-sum(yi))最少,当 (sum(xi)-sum(yi))最少有多个,取sum(xi)+sum(yi)最大那个 ,并顺 ...