Gruntfile.coffee 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. fs = require "fs"
  2. PackageVersions = require "./app/coffee/infrastructure/PackageVersions"
  3. Settings = require "settings-sharelatex"
  4. require('es6-promise').polyfill()
  5. module.exports = (grunt) ->
  6. grunt.loadNpmTasks 'grunt-contrib-requirejs'
  7. grunt.loadNpmTasks 'grunt-file-append'
  8. config =
  9. requirejs:
  10. compile:
  11. options:
  12. optimize:"uglify2"
  13. uglify2:
  14. mangle: false
  15. appDir: "public/js"
  16. baseUrl: "./"
  17. dir: "public/minjs"
  18. inlineText: false
  19. generateSourceMaps: true
  20. preserveLicenseComments: false
  21. paths:
  22. "moment": "libs/#{PackageVersions.lib('moment')}"
  23. "mathjax": "/js/libs/mathjax/MathJax.js?config=TeX-AMS_HTML"
  24. "pdfjs-dist/build/pdf": "libs/#{PackageVersions.lib('pdfjs')}/pdf"
  25. "ace": "#{PackageVersions.lib('ace')}"
  26. "fineuploader": "libs/#{PackageVersions.lib('fineuploader')}"
  27. skipDirOptimize: true
  28. modules: [
  29. {
  30. name: "main",
  31. exclude: ["libraries"]
  32. }, {
  33. name: "ide",
  34. exclude: ["pdfjs-dist/build/pdf", "libraries"]
  35. },{
  36. name: "libraries"
  37. },{
  38. name: "ace/mode-latex"
  39. },{
  40. name: "ace/worker-latex"
  41. }
  42. ]
  43. file_append:
  44. default_options: files: [ {
  45. append: '\n//ide.js is complete - used for automated testing'
  46. input: 'public/minjs/ide.js'
  47. output: 'public/minjs/ide.js'
  48. }]
  49. grunt.initConfig config
  50. grunt.registerTask 'compile:minify', 'Concat and minify the client side js', ['requirejs', "file_append"]