Gruntfile.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. /* global process:false */
  2. "use strict";
  3. var _ = require("lodash");
  4. module.exports = function(grunt) {
  5. require("load-grunt-tasks")(grunt);
  6. var config = {
  7. pkg: grunt.file.readJSON("package.json"),
  8. banner: "/*!\n" +
  9. " * element-resize-detector <%= pkg.version %>\n" +
  10. " * Copyright (c) 2016 Lucas Wiener\n" +
  11. " * <%= pkg.homepage %>\n" +
  12. " * Licensed under <%= pkg.license %>\n" +
  13. " */\n",
  14. jshint: {
  15. src: {
  16. src: ["src/**/*.js", "*.js"]
  17. },
  18. test: {
  19. src: "test/**/*.js"
  20. },
  21. options: {
  22. jshintrc: true
  23. }
  24. },
  25. browserify: {
  26. dev: {
  27. src: ["src/element-resize-detector.js"],
  28. dest: "build/element-resize-detector.js",
  29. options: {
  30. browserifyOptions: {
  31. standalone: "elementResizeDetectorMaker",
  32. debug: true
  33. }
  34. }
  35. },
  36. dist: {
  37. src: ["src/element-resize-detector.js"],
  38. dest: "dist/element-resize-detector.js",
  39. options: {
  40. browserifyOptions: {
  41. standalone: "elementResizeDetectorMaker"
  42. }
  43. }
  44. }
  45. },
  46. usebanner: {
  47. dist: {
  48. options: {
  49. position: "top",
  50. banner: "<%= banner %>"
  51. },
  52. files: {
  53. src: "dist/**/*"
  54. }
  55. }
  56. },
  57. uglify: {
  58. dist: {
  59. files: {
  60. "dist/element-resize-detector.min.js": "dist/element-resize-detector.js"
  61. }
  62. }
  63. },
  64. karma: {
  65. local: {
  66. configFile: "karma.conf.js",
  67. options: {
  68. browsers: [
  69. "Chrome",
  70. "Safari",
  71. "Firefox",
  72. //"IE8 - Win7",
  73. //"IE10 - Win7",
  74. //"IE11 - Win8.1"
  75. ],
  76. singleRun: true
  77. }
  78. }
  79. }
  80. };
  81. grunt.initConfig(config);
  82. grunt.registerTask("build:dev", ["browserify:dev"]);
  83. grunt.registerTask("build:dist", ["browserify:dist"]);
  84. grunt.registerTask("build", ["build:dev"]);
  85. grunt.registerTask("dist", ["build:dist", "uglify:dist", "usebanner:dist"]);
  86. grunt.registerTask("test:style", ["jshint"]);
  87. grunt.registerTask("test", ["test:style", "build:dev", "karma:local"]);
  88. grunt.registerTask("ci", ["test:style"]);
  89. grunt.registerTask("default", ["test"]);
  90. };