一、contrib-concat 和 contrib-uglify 插件的聯(lián)合使用
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供富陽網(wǎng)站建設、富陽做網(wǎng)站、富陽網(wǎng)站設計、富陽網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、富陽企業(yè)網(wǎng)站模板建站服務,十年富陽做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
1、安裝 concat 和 uglify 插件命令(在終端進入到項目根目錄執(zhí)行)
npm install grunt-contrib-concat --save-dev
npm install grunt-contrib-uglify --save-dev
2、在項目根目錄下提供 concat 和 uglify 插件任務配置需要的 src 目錄和需要被合并的源文件(合并源文件放置到 src 目錄下)
mkdir src
3、在 Gruntfile.js 文件中對 concat 和 uglify 任務進行配置(把多個文件合并成一個文件并且進行壓縮)
// 包裝函數(shù)
module.exports = function (grunt) {
// 任務配置,所有插件的配置信息
grunt.initConfig({
// 獲取 package.json 的信息
pkg: grunt.file.readJSON('package.json'),
// concat 插件的配置信息
concat: {
options: {
separator: ';', // 設置輸出文件合并的字符
banner: '/*被合成的文件第一行內(nèi)容說明文字信息*/',
footer: '/*被合成的文件尾部內(nèi)容說明文字信息*/',
stripBanners: true // 去掉被合成的文件內(nèi)容中的 /* */ 注釋信息
},
// 具體任務配置
dist: {
// 被合并的文件路徑
src: ['src/zepto.js','src/jquery.js'],
// 被合成的文件路徑
dest: 'dest/libs.js'
}
},
// uglify 插件的配置信息
uglify: {
// 文件頭部輸出信息
options: {
banner: '/*! <%= pkg.file %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
},
// 具體任務配置
build: {
// 源文件
src: 'dest/libs.js',
// 目標文件
dest: 'dest/libs.min.js'
}
}
});
// 加載指定插件任務
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
// 默認執(zhí)行的任務
grunt.registerTask('default', ['concat','uglify']);
};
PS:當你在命令行中執(zhí)行 grunt 命令本身時,Grunt 就會尋找一個已注冊的任務,叫作default。當然我們也可以自定義一個任務,將執(zhí)行一個特定的任務集,注意任務集中的插件的排列有先后之分,越靠前越先執(zhí)行。例如,grunt.registerTask('release',['jshint', 'jasmine', 'requirejs', 'sass', 'p_w_picpathmin', 'htmlmin']); 我們已經(jīng)創(chuàng)建了一個 release 任務,在命令行使用 " grunt release " 命令運行時將把我們準備好的文件提交到我們的生產(chǎn)環(huán)境中。
4、最后在終端運行 grunt 命令
PS:如果提示 "Done, without errors." 證明就沒什么問題了,現(xiàn)在去項目根目錄下看是否已經(jīng)生成了存放合并文件的目錄和被合成之后進行壓縮的目標文件。