Grunt 快速使用
Grunt 的使用
其实只是把别人的整理了一遍 - -
安装 Grunt
通过 yoeman 安装
sudo npm install -g yo
sudo npm install -g grunt-cli
新建项目目录、文件
生成 package.json 文件
- 进入项目文件夹,
npm init
安装 Grunt 和需要的插件
npm install grunt --save-dev
- 表示通过 npm 安装了 grunt 到当前项目,同时加上了
—save-dev
参数,表示会把刚安装的东西添加到 package.json 文件中。
- 表示通过 npm 安装了 grunt 到当前项目,同时加上了
- 需要安装的插件:
- 合并文件:grunt-contrib-concat
- 语法检查:grunt-contrib-jshint(jshint 在 contact 之后,免得两个文件分开是对的,连接起来又出错了)
- Scss 编译:grunt-contrib-sass
- 压缩文件:grunt-contrib-uglify
- 监听文件变动:grunt-contrib-watch
- 建立本地服务器:grunt-contrib-connect
- 安装插件
npm install --save-dev grunt-contrib-concat grunt-contrib-jshint grunt-contrib-sass grunt-contrib-uglify grunt-contrib-watch grunt-contrib-connect
配置 Gruntfile.js 的语法
- 所有代码要包裹在
module.exports = function(grunt) {
...
};
里面
- 这里与 Grunt 有关的主要有三块代码:任务配置代码、插件加载代码、任务注册代码。
- 任务配置代码
- 调用插件配置一下要执行的任务和实现的功能
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),//读取 package.json 文件
uglify: {//配置 uglify 插件的任务
options: {//配置全局 options
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
},
build: {//建立 build 任务
src: 'src/<%= pkg.name %>.js',
dest: 'build/<%= pkg.name %>.min.js'
}
}
});
* 是对象的格式
* 怎么写 options 里的参数和 build 里的参数内容,要查看每个插件的用法,根据用法编写任务,看[官方文档](https://www.npmjs.com/)。
- 插件加载代码
- 把需要用到的插件加载进来
grunt.loadNpmTasks('grunt-contrib-uglify');
- 任务注册代码
- 注册一个 task,里面包含刚在前面编写的任务配置代码
grunt.registerTask('default', ['uglify']);
- 在 default 上面注册一个 Uglify 任务,default 是别名,它是默认的 task,当你在项目目录执行 grunt 时,它会执行注册到 default 上的任务。也就是说,执行 grunt 命令时,uglify 的所有代码将会执行。
grunt.registerTask('command', ['task:subtask']);
- 要输入 grunt command 命令来执行任务,这条任务只执行 task 里的 subtask,比如上面 uglify 里有一个 build 子任务
- command 不能命名成 task,不能同名
项目文件传输与协作
- package.json 记录了项目中依赖的 grunt 插件,所以不用上传插件,只需要上传这个文件即可。下载下来之后,在这个项目文件夹下面,输入命令 npm install,NPM 会自动读取 package.json 文件,将 grunt 和有关插件下载下来。
- 用 .gitignore 过滤掉这个文件夹,禁止 git 追踪。
参考
hide