生成环境中grunt的压缩使用
来源:互联网 发布:to the moon 音乐 知乎 编辑:程序博客网 时间:2024/06/05 11:00
1.package.json
{ "name": "fs-service-mweb", "common":"src/main/webapp/static/themes/common", "mweb":"src/main/webapp/static/themes/mweb", "wxres":"src/main/webapp/static/themes/wxres", "version": "1.0.0", "description": "fs-service-mweb", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "grunt": "^1.0.1" }, "devDependencies": { "grunt": "*", "grunt-contrib-livereload": "*", "grunt-htmlhint":"*", "grunt-contrib-jshint": "*", "grunt-contrib-csslint":"*", "grunt-contrib-concat":"*", "grunt-contrib-htmlmin":"*", "grunt-contrib-imagemin":"*", "grunt-contrib-cssmin":"*", "grunt-contrib-uglify": "*", "grunt-contrib-watch":"*", "matchdep":"*" }, "keywords": [ "kxll", "mweb" ], "author": "cheonghu", "license": "ISC"}
2.gruntfile.js
module.exports = function (grunt) { 'use strict'; grunt.initConfig({ pkg:grunt.file.readJSON('package.json'), htmlhint: { htmls: { options: { 'tag-pair': true }, src: ['<%=pkg.mweb%>/templates/dev/**/*.html'] } }, csslint: { /* 检查 CSS 语法 */ src: ['<%=pkg.mweb%>/css/dev/**/*.css'] }, jshint: { /* 检查 js 语法 */ all: ['Gruntfile.js','<%=pkg.common%>/plugin/**/*.js', '<%=pkg.common%>/js/**/*.js', '<%=pkg.mweb%>/js/dev/**/*.js'] }, imagemin: { /* 压缩优化图片大小 */ dist: { options: { optimizationLevel: 3 }, files: [ { expand: true, cwd: '<%=pkg.mweb%>/images/', src: ['**/*.{png,jpg,jpeg}'], // 优化 img 目录下所有 png/jpg/jpeg 图片 dest: '<%=pkg.mweb%>/images/' // 优化后的图片保存位置,默认覆盖 }, { expand: true, cwd: '<%=pkg.wxres%>/', src: ['**/*.{png,jpg,jpeg}'], // 优化 img 目录下所有 png/jpg/jpeg 图片 dest: '<%=pkg.wxres%>/' // 优化后的图片保存位置,默认覆盖 }, ] } }, concat: { /* 合并 CSS 文件 */ main_css: { src: [ '<%=pkg.mweb%>/css/dev/reset.css', '<%=pkg.mweb%>/css/dev/stylesd.css', ], /* 根据目录下文件情况配置 */ dest: '<%=pkg.mweb%>/css/dev/main.css' }, /* 合并 js 文件 */ common_js:{//插件需要指定合成顺序 src: ['<%=pkg.common%>/plugin/angular/angular.min.js', '<%=pkg.common%>/plugin/angular/angular-route.min.js', '<%=pkg.common%>/plugin/angular/angular-touch.min.js', '<%=pkg.common%>/plugin/angular/sanitize.min.js', '<%=pkg.common%>/js/dev/boot.js', '<%=pkg.common%>/js/dev/wx_init.js', '<%=pkg.common%>/js/dev/locache.js', '<%=pkg.common%>/js/dev/base64.js', ], /* 根据目录下文件情况配置 */ dest: '<%=pkg.common%>/js/dev/common.js' }, }, htmlmin: { //html 压缩 // Task dist: { // Target options: { // Target options removeComments: true, collapseWhitespace: true, processScripts:['text/ng-template'], ignoreCustomComments:[ /^!/ ] }, files: [{ expand: true, cwd: '<%=pkg.mweb%>/templates/dev/', src: '**/*.html', dest: '<%=pkg.mweb%>/templates/min/' }] }, }, cssmin: { /*压缩 CSS 文件为 .css */ options: { keepSpecialComments: 0 /* 移除 CSS 文件中的所有注释 */ }, minify: { files: [ { expand: true, cwd:'<%=pkg.mweb%>/css/dev/', src: ['**/*.css'], dest: '<%=pkg.mweb%>/css/min/', ext: '.css' }, ] } }, uglify: { minjs: { files: [ { expand: true, // Enable dynamic expansion. cwd: '<%=pkg.common%>/js/dev/', // Src matches are relative to this path. src: ['common.js'], // Actual pattern(s) to match. dest: '<%=pkg.common%>/js/min/', // Destination path prefix. ext: '.js', // Dest filepaths will have this extension. }, { expand: true, // Enable dynamic expansion. cwd: '<%=pkg.mweb%>/js/dev/', // Src matches are relative to this path. src: ['**/*.js'], // Actual pattern(s) to match. dest: '<%=pkg.mweb%>/js/min/', // Destination path prefix. ext: '.js', // Dest filepaths will have this extension. }, ], }, }, watch: { /* 监控文件变化并执行相应任务 */ img: { files: ['<%=pkg.mweb%>/images/**/*.{png,jpg,jpeg}'], tasks:['imageTask'], options: { livereload: true } }, css: { options: { event: ['changed', 'added'], livereload: true }, tasks:['cssTask'], files: [ '<%=pkg.mweb%>/css/dev/**/*.css', ] }, js: { options: { livereload: true }, tasks:['jsTask'], files: ['Gruntfile.js','<%=pkg.mweb%>/js/dev/**/*.js', '<%=pkg.common%>/js/dev/**/*.js'] }, html: { options: { livereload: true }, tasks:['htmlTask'], files: ['<%=pkg.mweb%>/template/**/*.html'] } } }); grunt.loadNpmTasks('grunt-contrib-livereload'); grunt.loadNpmTasks('grunt-htmlhint'); grunt.loadNpmTasks('grunt-contrib-csslint'); grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-htmlmin'); grunt.loadNpmTasks('grunt-contrib-cssmin'); grunt.loadNpmTasks('grunt-contrib-imagemin'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-watch'); // 定义默认任务 grunt.registerTask('default', ['imageTask','htmlTask','cssTask','jsTask']); //注册监听任务 grunt.registerTask('watchTask', ['watch']); grunt.registerTask('imageTask', ['imagemin']); grunt.registerTask('htmlTask',['htmlhint','htmlmin']); grunt.registerTask('jsTask', ['jshint','concat:common_js','uglify']); grunt.registerTask('cssTask', ['csslint','concat:main_css','cssmin']);};
0 0
- 生成环境中grunt的压缩使用
- grunt的使用一(压缩任务)
- 使用grunt实现css压缩
- Grunt的配置及使用(压缩合并js/css)
- Grunt的配置及使用(压缩合并js/css)
- Grunt环境搭建和简单压缩尝试
- 使用grunt生成雪碧图
- grunt环境搭建及使用
- jenkins+tomcat+maven 的环境下 grunt安装和使用
- grunt压缩
- 使用Grunt进行js、css压缩合并
- 使用Grunt进行js、css压缩合并
- 使用grunt来无损压缩图片
- 使用grunt压缩,合并前端代码
- Windows 下使用Grunt 压缩 js文件
- grunt的grunt-contrib-jshint插件使用
- grunt的grunt-contrib-concat插件使用
- grunt的安装使用
- JavaEE——properties配置文件的编写和解析获取
- CodeForce 510 B
- 【HD 1242】(重写/模板)Rescue
- ios developer tiny share-20160812
- C++学习014函数值传递和地址传递
- 生成环境中grunt的压缩使用
- 可见性修饰符
- 函数式编程
- SpringMVC拦截器
- C# 发邮件 Code
- ERROR 1292 (22007): Truncated incorrect DOUBLE value: '96133dby11'
- jquery traditional true 的问题
- 唯一分解定理
- 浅析ButterKnife的实现 (四) —— OnClick