步骤:
- cd demo文件夹下
- 安装grunt-cli
npm install -g grunt-cli
//全局安装 -g
- 手动生产或自动生产
package.json
自动 npm init
//之后按需 输入name和version。。。
- 创建
Gruntfile.js
touch Gruntfile.js
安装插件 插件的用法详见 grunt官網
1
2
3
4
5
6
7
8
npm install grunt --save-dev
npm install grunt-contrib-uglify --save-dev
npm install grunt-contrib-watch --save-dev
npm install grunt-contrib-requirejs --save-dev运行
grunt
Gruntfile 配置如下1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48module.exports = function (grunt) {
// 项目配置
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
uglify: {
options: {
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
},
index: {
src: ['scripts/App/indexApp.js', 'scripts/Controllers/indexCtrl.js'],//要压缩的源文件
dest: 'scripts/<%= pkg.name %>.min.js'//压缩后的输出位置
}
},
watch: {
scripts: {
files: ['scripts/**/*.js'],
tasks: ['requirejs'],
options: {
spawn: false
}
}
},
requirejs: {
compile: {
options: {
baseUrl: ".",
paths: {requireLib: 'scripts/requireMain/require'},
include: 'requireLib',//如果需要把require也压进去(这样整个项目只需要一个js文件了),设置其path,并
name: 'scripts/requireMain/indexMain',
out: 'scripts/requireMain/index.js',//输出的文件名
// optimize:'none',//注释掉此行即可同时把合并后的js文件压缩
mainConfigFile: 'scripts/requireMain/indexMain.js'//用已写好的main.js文件来处理模块依赖关系
}
}
}
});
// 加载提供"uglify"任务的插件
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-requirejs');
// 默认任务 使用 requirejs
grunt.registerTask('default', ['requirejs', 'watch']);
};