Gruntfile.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /* eslint-disable
  2. max-len,
  3. no-unused-vars,
  4. */
  5. // TODO: This file was created by bulk-decaffeinate.
  6. // Fix any style issues and re-enable lint.
  7. /*
  8. * decaffeinate suggestions:
  9. * DS102: Remove unnecessary code created because of implicit returns
  10. * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  11. */
  12. const fs = require('fs')
  13. const PackageVersions = require('./app/src/infrastructure/PackageVersions')
  14. const Settings = require('settings-sharelatex')
  15. require('es6-promise').polyfill()
  16. module.exports = function(grunt) {
  17. grunt.loadNpmTasks('grunt-contrib-requirejs')
  18. grunt.loadNpmTasks('grunt-file-append')
  19. const config = {
  20. requirejs: {
  21. compile: {
  22. options: {
  23. optimize: 'uglify2',
  24. appDir: 'public/js',
  25. baseUrl: './',
  26. dir: 'public/minjs',
  27. inlineText: false,
  28. generateSourceMaps: true,
  29. preserveLicenseComments: false,
  30. paths: {
  31. moment: `libs/${PackageVersions.lib('moment')}`,
  32. mathjax: '/js/libs/mathjax/MathJax.js?config=TeX-AMS_HTML',
  33. 'pdfjs-dist/build/pdf': `libs/${PackageVersions.lib('pdfjs')}/pdf`,
  34. ace: `${PackageVersions.lib('ace')}`,
  35. fineuploader: `libs/${PackageVersions.lib('fineuploader')}`,
  36. recurly: 'https://js.recurly.com/v4/recurly'
  37. },
  38. skipDirOptimize: true,
  39. modules: [
  40. {
  41. name: 'main',
  42. exclude: ['libraries']
  43. },
  44. {
  45. name: 'ide',
  46. exclude: ['pdfjs-dist/build/pdf', 'libraries']
  47. },
  48. {
  49. name: 'libraries'
  50. },
  51. {
  52. name: 'ace/mode-latex'
  53. },
  54. {
  55. name: 'ace/worker-latex'
  56. }
  57. ]
  58. }
  59. }
  60. },
  61. file_append: {
  62. default_options: {
  63. files: [
  64. {
  65. append: '\n//ide.js is complete - used for automated testing',
  66. input: 'public/minjs/ide.js',
  67. output: 'public/minjs/ide.js'
  68. }
  69. ]
  70. }
  71. }
  72. }
  73. grunt.initConfig(config)
  74. return grunt.registerTask(
  75. 'compile:minify',
  76. 'Concat and minify the client side js',
  77. ['requirejs', 'file_append']
  78. )
  79. }