package.js

{
  "name": "ttd_v3",
  "version": "0.1.0",
  "author": "liujin",
  "devDependencies": {
    "connect-livereload": "^0.5.2",
    "grunt": "~0.4.2",
    "grunt-contrib-concat": "~0.3.0",
    "grunt-contrib-connect": "^0.7.1",
    "grunt-contrib-cssmin": "^0.11.0",
    "grunt-contrib-jshint": "~0.6.0",
    "grunt-contrib-sass": "~0.3.0",
    "grunt-contrib-uglify": "~0.3.2",
    "grunt-contrib-watch": "^0.6.1",
    "grunt-css": "~0.5.4",
    "grunt-sass": "0.6.1"
  }
}

gruntfile.js

module.exports = function(grunt) {

    // LiveReload的默认端口号,你也可以改成你想要的端口号
    var lrPort =35729  ;
    // 使用connect-livereload模块,生成一个与LiveReload脚本
    // <script src="http://127.0.0.1:35729/livereload.js?snipver=1" type="text/javascript"></script>
    var lrSnippet = require('connect-livereload')({ port: lrPort });
    // 使用 middleware(中间件),就必须关闭 LiveReload 的浏览器插件
    var lrMiddleware = function(connect, options) {
        return [
            // 把脚本,注入到静态文件中
            lrSnippet,
            // 静态文件服务器的路径
            connect.static(options.base),
            // 启用目录浏览(相当于IIS中的目录浏览)
            connect.directory(options.base)
        ];
    };

    // 项目配置(任务配置)
    grunt.initConfig({
        // 读取我们的项目配置并存储到pkg属性中
        pkg: grunt.file.readJSON('package.json'),
        // 通过connect任务,创建一个静态服务器
        connect: {
            options: {
                // 服务器端口号
                port: 8000,
                // 服务器地址(可以使用主机名localhost,也能使用IP)
                hostname: 'localhost',
                // 物理路径(默认为. 即根目录) 注:使用'.'或'..'为路径的时,可能会返回403 Forbidden. 此时将该值改为相对路径 如:/grunt/reloard。
                base: '.'
            },
            livereload: {
                options: {
                    // 通过LiveReload脚本,让页面重新加载。
                    middleware: lrMiddleware
                }
            }
        },
        // 通过watch任务,来监听文件是否有更改
        watch: {
            client: {
                // 我们不需要配置额外的任务,watch任务已经内建LiveReload浏览器刷新的代码片段。
                options: {
                    livereload: lrPort
                },
                // '**' 表示包含所有的子目录
                // '*' 表示包含所有的文件
                files: ['D:/working/TFS2010/UISolution/website/_prototype_/code_pub/cn/vacation_v2/ttd/v3/*.php','D:/working/TFS2010/UISolution/website/_webresource_/styles/vacation_v2/*.css','D:/working/TFS2010/UISolution/website/_pic_/ttdonline/*']
            },
            sass: {
                files: ['sass/*.{scss,sass}','sass/*.{scss,sass}'],
                tasks: ['sass:dist']
            }
        },
        //js合并任务
        concat : {
            webqq : {
                files : {
                     'dist/js/test.js' : ['js/a.js','js/b.js']
                }
            }
         },
         //js压缩任务
         uglify : {
            options: {
                banner: '/** \n * <%= pkg.name %> \n * author:<%= pkg.author %> \n * update:<%= new Date() %> \n**/\n'
            },
            webqq : {
                files : {
                     'dist/js/test.min.js' : ['dist/js/test.js']
                }
            }
        },
        //css压缩任务
        cssmin: {
            options: {
                    banner: '/** \n * <%= pkg.name %> \n * author:<%= pkg.author %> \n * update:<%= new Date() %> \n**/'
            },
            cssmini: {
                files: {
                  'D:/git_ttd/ResStatic/code/ResACTOnline/css/vacation_v2/book_v3.1_ttd.css': ['D:/working/TFS2010/UISolution/website/_webresource_/styles/vacation_v2/book_v3.1_ttd.css']
                }
            }
        },
        //sass编译
        sass: {
          dist: {
            files: {
              'dist/css/test.css': 'sass/test.scss'
            }
          }
        }

    }); // grunt.initConfig配置完毕

    // 监控html js css
    grunt.loadNpmTasks('grunt-contrib-connect');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.registerTask('live', ['connect', 'watch']);

    //合并压缩js
    grunt.loadNpmTasks('grunt-contrib-concat');  //js合并
    grunt.loadNpmTasks('grunt-contrib-uglify');  //js压缩
    grunt.registerTask('jsmini', ['cssmin']);

    //压缩css
    grunt.loadNpmTasks('grunt-css');
    grunt.registerTask('cssmini', ['cssmin']);

    //编译sass
    grunt.registerTask('sassmini', ['sass:dist', 'watch']);
    grunt.loadNpmTasks('grunt-sass');
    grunt.loadNpmTasks('grunt-contrib-watch');
};

最新文章

  1. Eclipse Java注释模板设置详解
  2. Ionic2学习笔记(5):Provider
  3. android xml 布局错误(黑掉了)Missing styles. Is the correct theme chosen for this layout?
  4. PHP time() 函数
  5. NHibernate的简单例子
  6. POJ 2540 Hotter Colder
  7. js 设置下拉框的默认值
  8. Java字符串操作
  9. .Net6种成员的可访问性
  10. innerHTML,outerHTML,innerText,outerText
  11. oracle入门之对表数据查询(二)
  12. 洛谷P4592 [TJOI2018]异或(可持久化01Trie)
  13. 在干净的ubuntu 14.10上编译Qemu2.2.0的过程
  14. markdown 语法和工具
  15. 命令查看linux主机配置
  16. Django之静态文件配置
  17. .net webapi 收不到json 实体类参数,返回的json中带有k__BackingField
  18. Mysql 间隙锁原理,以及Repeatable Read隔离级别下可以防止幻读原理(百度)
  19. Swift:playground
  20. [Docker] Docker Hub加速

热门文章

  1. loadrunner打不开ie&amp;ie默认浏览器设置方法
  2. supesite 模板相关文档记录
  3. 待解决)leetcode 路径和 dfs 线序遍历
  4. 2016 GDCPC 省赛总结
  5. java base64编码 加密和解密(切记注意乱码问题)
  6. UVa1151 Buy or Build
  7. 【Android - 框架】之ORMLite的使用
  8. 【转】HTML5游戏开发经典视频教程、电子书汇总
  9. HTML5简易在线画图工具
  10. 分享一个很好看的WPF界面