grunt+requirejs+angularjs

步骤:

  • 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
48
module.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']);
};

[demo](https://github.com/yuluhuang/ng-requirejs)