Gruntfile.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. /*jshint node: true */
  2. 'use strict';
  3. module.exports = function (grunt) {
  4. grunt.initConfig({
  5. pkg: grunt.file.readJSON('package.json'),
  6. qunit: {
  7. all: ['test/index.html']
  8. },
  9. jshint: {
  10. files: [
  11. 'Gruntfile.js',
  12. 'jquery.cookie.js'
  13. ],
  14. options: {
  15. jshintrc: '.jshintrc'
  16. }
  17. },
  18. uglify: {
  19. options: {
  20. banner: '/*! <%= pkg.name %> v<%= pkg.version %> | <%= pkg.license %> */\n'
  21. },
  22. build: {
  23. files: {
  24. 'build/jquery.cookie-<%= pkg.version %>.min.js': 'jquery.cookie.js'
  25. }
  26. }
  27. },
  28. watch: {
  29. files: [
  30. 'jquery.cookie.js',
  31. 'test/tests.js'
  32. ],
  33. tasks: 'default'
  34. },
  35. compare_size: {
  36. files: [
  37. 'build/jquery.cookie-<%= pkg.version %>.min.js',
  38. 'jquery.cookie.js'
  39. ],
  40. options: {
  41. compress: {
  42. gz: function (fileContents) {
  43. return require('gzip-js').zip(fileContents, {}).length;
  44. }
  45. }
  46. }
  47. },
  48. connect: {
  49. server: {
  50. options: {
  51. base: '.',
  52. directory: 'test',
  53. port: 9999
  54. }
  55. }
  56. },
  57. 'saucelabs-qunit': {
  58. all: {
  59. options: {
  60. urls: ['http://127.0.0.1:9999/test/index.html'],
  61. tunnelTimeout: 5,
  62. build: process.env.TRAVIS_JOB_ID,
  63. concurrency: 3,
  64. browsers: [
  65. {
  66. browserName: 'safari',
  67. platform: 'OS X 10.8'
  68. },
  69. {
  70. browserName: 'firefox',
  71. platform: 'Windows 7'
  72. },
  73. {
  74. browserName: 'firefox',
  75. platform: 'Windows XP'
  76. },
  77. {
  78. browserName: 'firefox',
  79. platform: 'Linux'
  80. },
  81. {
  82. browserName: 'chrome',
  83. platform: 'Windows 7'
  84. },
  85. {
  86. browserName: 'internet explorer',
  87. platform: 'Windows 8',
  88. version: '10'
  89. },
  90. {
  91. browserName: 'internet explorer',
  92. platform: 'Windows 7',
  93. version: '9'
  94. }
  95. ],
  96. testname: 'jquery.cookie qunit tests'
  97. }
  98. }
  99. }
  100. });
  101. // Loading dependencies
  102. for (var key in grunt.file.readJSON('package.json').devDependencies) {
  103. if (key !== 'grunt' && key.indexOf('grunt') === 0) {
  104. grunt.loadNpmTasks(key);
  105. }
  106. }
  107. grunt.registerTask('default', ['jshint', 'qunit', 'uglify', 'compare_size']);
  108. grunt.registerTask('saucelabs', ['connect', 'saucelabs-qunit']);
  109. grunt.registerTask('ci', ['jshint', 'qunit', 'saucelabs']);
  110. };