gruntfile.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. module.exports = function(grunt) {
  2. grunt.initConfig({
  3. pkg: grunt.file.readJSON('package.json'),
  4. concat: {
  5. options: {
  6. separator: ';'
  7. },
  8. dist: {
  9. src: ['js/searx_src/*.js'],
  10. dest: 'js/searx.js'
  11. }
  12. },
  13. uglify: {
  14. options: {
  15. sourceMap: true,
  16. banner: '/*! oscar/searx.min.js | <%= grunt.template.today("dd-mm-yyyy") %> | <%= process.env.GIT_URL %> */\n'
  17. },
  18. dist: {
  19. files: {
  20. 'js/searx.min.js': ['<%= concat.dist.dest %>']
  21. }
  22. }
  23. },
  24. jshint: {
  25. files: ['gruntfile.js', 'js/searx_src/*.js'],
  26. options: {
  27. reporterOutput: "",
  28. // options here to override JSHint defaults
  29. globals: {
  30. jQuery: true,
  31. console: true,
  32. module: true,
  33. document: true
  34. }
  35. }
  36. },
  37. less: {
  38. development: {
  39. options: {
  40. paths: ["less/pointhi", "less/logicodev", "less/logicodev-dark", "less/bootstrap"]
  41. },
  42. files: {
  43. "css/pointhi.css": "less/pointhi/oscar.less",
  44. "css/logicodev.css": "less/logicodev-dark/oscar.less",
  45. "css/logicodev-dark.css": "less/logicodev/oscar.less"
  46. }
  47. },
  48. production: {
  49. options: {
  50. paths: ["less/pointhi", "less/logicodev", "less/logicodev-dark", "less/bootstrap"],
  51. plugins: [
  52. new (require('less-plugin-clean-css'))()
  53. ],
  54. sourceMap: true,
  55. },
  56. files: {
  57. "css/pointhi.min.css": "less/pointhi/oscar.less",
  58. "css/logicodev.min.css": "less/logicodev/oscar.less",
  59. "css/logicodev-dark.min.css": "less/logicodev-dark/oscar.less"
  60. }
  61. },
  62. },
  63. watch: {
  64. scripts: {
  65. files: ['<%= jshint.files %>'],
  66. tasks: ['jshint', 'concat', 'uglify']
  67. },
  68. oscar_styles: {
  69. files: ['less/pointhi/**/*.less'],
  70. tasks: ['less:development', 'less:production']
  71. },
  72. bootstrap_styles: {
  73. files: ['less/bootstrap/**/*.less'],
  74. tasks: ['less:bootstrap']
  75. }
  76. }
  77. });
  78. grunt.loadNpmTasks('grunt-contrib-uglify');
  79. grunt.loadNpmTasks('grunt-contrib-jshint');
  80. grunt.loadNpmTasks('grunt-contrib-watch');
  81. grunt.loadNpmTasks('grunt-contrib-concat');
  82. grunt.loadNpmTasks('grunt-contrib-less');
  83. grunt.registerTask('test', ['jshint']);
  84. grunt.registerTask('default', ['jshint', 'concat', 'uglify', 'less']);
  85. grunt.registerTask('styles', ['less']);
  86. };