grunt打包过程中的注意点
1、安装nodeJS nodeJS下载地址: http://www.nodejs.org/download/
2、
在Node.js command prompt 这个控制面板输入 npm install -g grunt-cli 即可安装grunt
(解释:这条命令将会把grunt命令植入系统路径,这样就能在任意目录运行他,原因是:每次运行grunt时,它都会使用node的require查找本地是否安装grunt,如果找到CLI便加载这个本地grunt库,然后应用我们项目中的GruntFile配置,并执行任务)
3、在你装项目的文件夹(暂且叫做grunt)中放这么两个文件: package.json //项目自动化所依赖的相关插件。 Gruntfile.js //项目自动化工作流配置文件,重要
(对这两个文件中的内容进行解释:
package.json//项目自动化所依赖的相关插件 {
"name": "h5", //项目名称
"version": "1.0.0", //项目版本号
"author": "cuijd", //创建这个文件的作者
"family": "zn",
"spm": {
"alias": {
"zepto": "lib/zepto/zepto",
"swipe": "lib/swipe/swipe"
}
},
"devDependencies": { //自动化所依赖的插件及其版本号
"grunt": "0.4.5",
"grunt-cmd-transport": "0.4.0", //js文件的移动
"grunt-cmd-concat": "0.2.5", //连接源文件,减少HTTP请求
"grunt-contrib-less": "0.11.0", //less文件的解析
"grunt-contrib-uglify": "0.2.0", //压缩JS源文件,提高运行时性能
"grunt-contrib-watch": "0.6.1", // 监视磁盘文件,一旦更改就会重新运行指定的任务,例如使http服务器重新加载源文件
"grunt-contrib-clean": "0.4.0", //用于清理指定文件(夹),一般是构建之前或之后进行
"grunt-contrib-copy": "~0.5.0", //用于复制文件或目录
"grunt-newer": "~0.7.0", //监听最新的grunt
"grunt-pngmin": "~0.6.1" //
}
}
gruntfile.js
module.exports = function(grunt){
//var transport = require('grunt-cmd-transport');
//var style = transport.style.init(grunt);
//var text = transport.text.init(grunt);
//var script = transport.script.init(grunt);
grunt.initConfig({
pkg : grunt.file.readJSON("package.json"),
less: {
compile: {
options: {
//paths:function(srcFile) {
//var path = require('path');
//console.log(path.dirname(srcFile));
//return [path.dirname(srcFile) + '/include'];
//}
},
files: [{
expand: true,
cwd: 'dev/',
src: ['**/*.less','!**/import*.less'],
ext:'.css',
dest:'css/'
}]
}
},
transport:{
options : {
paths: ["."],
//parsers : {
//'.js' : [script.jsParser],
//'.css' : [style.css2jsParser],
//'.html' : [text.html2jsParser]
//},
alias: '<%= pkg.spm.alias %>',
idleading:'js/',
flatten: true,
debug:false
},
devtodest:{
files : [{
expand: true,
cwd: 'dev/',
src: ['**/*.js'],
//flatten:true,
//ext: '.dev.js',
dest:'js/'
}]
}
},
copy: {
image: {
files: [{
expand: true,
cwd: 'dev/',
src: [
'**/*.jpg',
'**/*.jpeg',
'**/*.png',
'**/*.gif',
'**/*.swf'
],
dest: 'images/'
}]
}
},
pngmin:{
compile: {
files:[{
expand: true,
cwd: 'dev/',
src: ['**/*.png'],
dest: 'images/'
}]
}
},
concat : {
main : {
options : {
relative : true
},
files : {
//'lib/base/base.js' : ['lib/seajs/sea.js','lib/zepto/zepto.js']
//'js/b/js/b.js' : ['js/c/js/c.js','js/b/js/b.js']
}
}
},
watch:{
scripts: {
//cwd:'dev/',
files: [
'lesslib/**/*.less',
'lib/**/*',
'lesslib/**/*',
'dev/**/*.js',
'dev/**/*.less',
'**/*.png',
'**/*.jpg',
'**/*.jpeg',
'**/*.gif',
'**/*.swf'
],
tasks: ['default'],
options: {
//spawn: false
}
},
gruntfile: {
files: ['Gruntfile.js'],
options: {
reload: true
}
}
},
clean : {
build : ['.build'] //清除.build文件
}
});
grunt.loadNpmTasks('grunt-cmd-transport');
grunt.loadNpmTasks('grunt-cmd-concat');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-newer');
grunt.loadNpmTasks('grunt-pngmin');
//grunt.registerTask('build', 'runs my tasks', function () {
//var tasks = ['less','transport','concat'];
//// always use force when watching
//grunt.option('force', true);
//grunt.task.run(tasks);
//});
//
grunt.registerTask('default',['newer:less','transport:devtodest','concat','newer:copy']);
};
放置好这两个文件,然后在grunt这个文件夹下,按shift+鼠标右键 出现
点击《在此处打开命令窗口》,在上面输入 npm install 这个命令行,即可安装package.json中所需要依赖的插件,结果显示为
。
然后就可以开始使用grunt了,至于最后到底怎么使用,请见下节~~ {}
grunt打包过程中的注意点的更多相关文章
- 使用meaven打包过程中遇到的一些问题
开始使用如下代码进行打包 <build> <!-- mvn assembly:assembly -Dmaven.test.skip=true --> <plugins&g ...
- Aandroid 解决apk打包过程中出现的“Certificate for <jcenter.bintray.com> doesn't match any of the subject alternative names: [*.aktana.com, aktana.com]”的问题
有时候,apk打包过程中会出现“Certificate for <jcenter.bintray.com> doesn't match any of the subject alterna ...
- Storm编译打包过程中遇到的一些问题及解决方法
作者: 大圆那些事 | 文章可以转载,请以超链接形式标明文章原始出处和作者信息 网址: http://www.cnblogs.com/panfeng412/archive/2013/11/30/som ...
- 继《关于讯飞语音SDK开发学习》之打包过程中遇到小问题
关于讯飞语音SDK开发学习 使用vs自带打包,具体怎么操作就不说了,网上关于这方面的资料挺多的.例如:winform 打包部署,VS2010程序打包操作(超详细的),关键是桌面上创建快捷方式中的&qu ...
- 通过py2exe打包python程序的过程中,解决的一系列问题
py2exe的使用方法参考<py2exe使用方法>. 注:程序可以在解释器中正常运行,一切问题都出在打包过程中. 问题1: 现象:RuntimeError: maximum recursi ...
- Maven编译过程中出现的问题
在用Jenkins编译Gitlab上代码过程中,实际使用的是Maven服务器上的打包命令,以下为打包过程中出现的问题及解决方案 问题一:Maven无法编译Snapshot版本代码 答:登录至maven ...
- Grunt打包之seajs项目【转】
原文:http://www.cnblogs.com/accordion/p/4508154.html grunt与seajs grunt是前端流行的自定义任务的脚手架工具,我们可以使用grunt来为我 ...
- 初学seaJs模块化开发,利用grunt打包,减少http请求
原文地址:初学seaJs模块化开发,利用grunt打包,减少http请求 未压缩合并的演示地址:demo2 学习seaJs的模块化开发,适合对seajs基础有所了解的同学看,目录结构 js — —di ...
- Android编译过程中的碎碎念
刷机不是用rom包吗?怎么可以使用fastboot flashall -w将*.img文件刷入呢? 在Mac上面可以参考这篇文章进行刷机.概括来说解释从官方下载rom包,解压后运行./flash-al ...
随机推荐
- CodeFirst EF中导航属性的个人理解
>导航属性: 01.个人理解就是Ef中的属性在实体数据表中不存在(先这么认为); 02.就是除了根据表中列映射出的属性 之外根据表与表之间的关系的关联属性.方便操作与之关联的表; 例如: 有 表 ...
- 拾遗补缺之session,高手请跳过!
session timeout(单位:分钟)---web.config文件中 session共享时需要使用stateServer模式(web.config中,mode="stateServe ...
- CFILE追加写入文件
CFile file; file.Open(strName, CFile::modeWrite|CFile::modeNoTruncate|CFile::modeCreate); ) { file.S ...
- Linux网络管理——子网掩码
1. 网络基础 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB",&q ...
- listview 点击条目 自动置顶或者自动置底部
关于Listview点击条目,自动滑动到点击条目实现: map_searchresult_list.post(new Runnable() { @Override public void run() ...
- js previousSibling兼容使用方法
使用previousSibling的时候发现当前元素跟上一个元素之间有空格就不获取不到对象, 查资料才知道除了ie外js的previousSibling获取的对象包括空格! 兼容方法如下: funct ...
- Flink资料(5) -- Job和调度
该文档翻译自Jobs and Scheduling ----------------------------------------------- 该文档简单描述了Flink是如何调度Job的,以及如 ...
- 3D空间坐标系转换复习
模型坐标系:ModelSpace 即模型本身为中心 模型本身自己 世界坐标系:WorldSpace 世界坐标系 整个世界 视角坐标系: ViewSpace 眼睛看到的范 ...
- (C)学生成绩管理系统
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h&g ...
- 搭建Android开发环境之——Android4.0.3, 4.1, 4.2, 4.3, 4.x,及升级 ADT(22.0.5)和SDK(22.x)
1.首先要下载相关的软件 1). JDK 6 以上 2). eclipse( Version 3.6.2 or higher ) 点击下载 3). SDK(android-sdk_r18-windo ...