清理文件和文件夾:grunt-contrib-clean。
module.exports = function(grunt) {
grunt.initConfig({
clean : {
build : ['.tmp', 'build'],
release : ['release']
}
});
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.registerTask('default', ['clean']);
};
使用UglifyJS壓縮js文件:grunt-contrib-uglify。
module.exports = function(grunt) {
// 項目配置
grunt.initConfig({
pkg : grunt.file.readJSON('package.json'),
uglify : {
options : {
banner : '/*! <%= pkg.file %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
},
build : {
src : 'src/<%=pkg.file %>.js',
dest : 'dest/<%= pkg.file %>.min.js'
}
}
});
// 加載提供"uglify"任務的插件
grunt.loadNpmTasks('grunt-contrib-uglify');
// 默認任務
grunt.registerTask('default', ['uglify']);
};
合并文件: grunt-contrib-concat。
module.exports = function(grunt) {
// 項目配置
grunt.initConfig({
pkg : grunt.file.readJSON('package.json'),
concat : {
options : {
separator : ';'
},
dist : {
src : ['src/zepto.js', 'src/underscore.js', 'src/backbone.js'],
dest : 'dest/libs.js'
}
}
});
grunt.loadNpmTasks('grunt-contrib-concat');
// 默認任務
grunt.registerTask('default', ['concat']);
}
合并并壓縮文件:
方式一、先合并再壓縮,首先將三個文件合并成一個文件libs.js,然后再將文件libs.js壓縮成libs.min.js
module.exports = function(grunt) {
// 項目配置
grunt.initConfig({
pkg : grunt.file.readJSON('package.json'),
concat : {
options : {
separator : ';'
},
dist : {
src : ['src/zepto.js', 'src/underscore.js', 'src/backbone.js'],
dest : 'dest/libs.js'
}
},
uglify : {
build : {
src : 'dest/libs.js',
dest : 'dest/libs.min.js'
}
}
});
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-concat');
// 默認任務
grunt.registerTask('default', ['concat', 'uglify']);
}
方式二:先壓縮后合并,其實這里只需要grunt-contrib-uglify一個插件就可以完成代碼的壓縮及合并。
module.exports = function(grunt) {
// 項目配置
grunt.initConfig({
pkg : grunt.file.readJSON('package.json'),
uglify : {
"target" : {
"files" : {
'dest/libs.min.js' : ['src/zepto.js', 'src/underscore.js', 'src/backbone.js']
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-uglify');
// 默認任務
grunt.registerTask('default', ['uglify']);
}
grunt-contrib-jshint
jshint用于javascript代碼檢查(并會給出建議),發布js代碼前執行jshint任務,可以避免出現一些低級語法問題。
jshint擁有非常豐富的配置,可以自由控制檢驗的級別。
module.exports = function(grunt) {
// 構建任務配置
grunt.initConfig({
//讀取package.json的內容,形成個json數據
pkg: grunt.file.readJSON('package.json'),
jshint: {
options: {
//大括號包裹
curly: true,
//對于簡單類型,使用===和!==,而不是==和!=
eqeqeq: true,
//對于首字母大寫的函數(聲明的類),強制使用new
newcap: true,
//禁用arguments.caller和arguments.callee
noarg: true,
//對于屬性使用aaa.bbb而不是aaa['bbb']
sub: true,
//查找所有未定義變量
undef: true,
//查找類似與if(a = 0)這樣的代碼
boss: true,
//指定運行環境為node.js
node: true
},
//具體任務配置
files: {
src: ['src/*.js']
}
}
});
// 加載指定插件任務
grunt.loadNpmTasks('grunt-contrib-jshint');
// 默認執行的任務
grunt.registerTask('default', ['jshint']);
};
grunt-contrib-copy:復制文件和文件夾。
grunt-contrib-cssmin:CSS文件壓縮。
grunt-contrib-imagemin:圖片壓縮。
grunt-usemin:Replaces references to non-optimized scripts or stylesheets into a set of HTML files (or any templates/views).
grunt-contrib-htmlmin:Minify HTML