今天要压缩文件,配置那东西好久了,记录一下配置的全过程:
1. 下载Node.js官方Windows版程序:(下载地址:http://nodejs.org/#download)
从0.6.1开始,Node.js在Windows平台上提供了两种安装方式,一是.MSI安装文件,另外还有一个.EXE可执行文件。直接选择INSTALL即可下载MSI自动安装包。我使用的版本为Windows Installer (.msi) 64-bit
2. 打开下载的node-v0.10.24-x64.msi安装包,既可完成自动安装。如果你下载的是EXE可执行文件,可以在D盘创建D:\lmq\gruntjs\nodejs目录,并将node.exe保存在这个目录中。并将"D:\lmq\gruntjs\nodejs"加入系统环境变量PATH中,便于在任意位置执行node应用。(注意:要先关闭命令窗口,在打开方能起作用),可用 node -v 查看版本。
3. 下载npm源代码:(下载地址:https://github.com/isaacs/npm/tags)
目前在写本文章时最新版本是v1.3.21,下载此版本即可:
https://github.com/isaacs/npm/archive/v1.3.21.zip
4. 将npm源代码解压到D:\lmq\gruntjs\npm目录中。
在命令提示符窗口中执行下面的操作,完成npm的安装:(出现rm错误没有关系,因为是Linux命令)
D:>cd D:\lmq\gruntjs\npm
D:\lmq\gruntjs\npm>node cli.js install -gf
5. NPM安装完成后,将nodejs下面的子目录node_modules"D:\lmq\gruntjs\nodejs\node_modules"加入系统环境变量NODE_PATH中。可用npm -v来查看npm的版本。
6. 借助npm来安装grunt-cli
卸载旧版本grunt(<0.4.0) (没装过请忽略)
npm uninstall grunt -g
npm install grunt-cli -g
安装完成可用用grunt -v来查看版本。
7. 配置grunt
package.json
//项目自动化所依赖的相关插件。Gruntfile.js
//项目自动化工作流配置文件,重要
1) package.json 文件修改 官方文件地址
2) Gruntfile.js 文件修改 官方文件地址
demo的操作:以下命令需进入到项目的根目录(在命令行面板定位到项目根目录)操作
2)执行命令自动下载相对应的Grunt插件
npm install
3)启动文件变更监控(livereload)
【视频演示戳这里】
grunt live
4) 编码完成后Build
grunt build
8. 构建动态文件对象
当你希望处理大量的单个文件时,这里有一些附加的属性可以用来动态的构建一个文件. 这些属性都可以指定在Compact
和Files Array
映射格式中(这两种格式都可以使用)。
-
expand
设置true
用于启用下面的选项: -
cwd
相对于当前路径所匹配的所有src
路径(但不包括当前路径。) -
src
相对于cwd
路径的匹配模式。 -
dest
目标文件路径前缀。 -
ext
使用这个属性值替换生成的dest
路径中所有实际存在文件的扩展名(比如我们通常将压缩后的文件命名为.min.js
)。 -
flatten
从生成的dest
路径中移除所有的路径部分。 -
rename
对每个匹配的src
文件调用这个函数(在执行ext
和flatten
之后)。传递dest
和匹配的src
路径给它,这个函数应该返回一个新的dest
值。 如果相同的dest
返回不止一次,每个使用它的src
来源都将被添加到一个数组中。
在下面的例子中,minify
任务将在static_mappings
和dynamic_mappings
两个目标中查看相同的src-dest
文件映射列表, 这是因为任务运行时Grunt会自动展开dynamic_mappings
文件对象为4个单独的静态src-dest
文件映射--假设这4个文件能够找到。
可以指定任意结合的静态src-dest
和动态的src-dest
文件映射。
grunt.initConfig({
uglify: {
static_mappings: {
//由于这里的src-dest文件映射时手动指定的, 每一次新的文件添加或者删除文件时,Gruntfile都需要更新
files: [
{src: 'lib/a.js', dest: 'build/a.min.js'},
{src: 'lib/b.js', dest: 'build/b.min.js'},
{src: 'lib/subdir/c.js', dest: 'build/subdir/c.min.js'},
{src: 'lib/subdir/d.js', dest: 'build/subdir/d.min.js'}
]
},
dynamic_mappings: {
//当'uglify'任务运行时Grunt将自动在"lib/"下搜索"**/*.js", 然后构建适当的src-dest文件映射,因此你不需要在文件添加或者移除时更新Gruntfile
files: [
{
expand: true, //启用动态扩展
cwd: 'lib/', //批匹配相对lib目录的src来源
src: '**/*.js', //实际的匹配模式
dest: 'build/', //目标路径前缀
ext: '.min.js' //目标文件路径中文件的扩展名.
}
]
}
}
});
grunt的详细配置可参考:http://www.gruntjs.org/article/getting_started.html