Gruntfile.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. uglify2: {
  25. mangle: false
  26. },
  27. appDir: 'public/js',
  28. baseUrl: './',
  29. dir: 'public/minjs',
  30. inlineText: false,
  31. generateSourceMaps: true,
  32. preserveLicenseComments: false,
  33. paths: {
  34. moment: `libs/${PackageVersions.lib('moment')}`,
  35. mathjax: '/js/libs/mathjax/MathJax.js?config=TeX-AMS_HTML',
  36. 'pdfjs-dist/build/pdf': `libs/${PackageVersions.lib('pdfjs')}/pdf`,
  37. ace: `${PackageVersions.lib('ace')}`,
  38. fineuploader: `libs/${PackageVersions.lib('fineuploader')}`
  39. },
  40. skipDirOptimize: true,
  41. modules: [
  42. {
  43. name: 'main',
  44. exclude: ['libraries']
  45. },
  46. {
  47. name: 'ide',
  48. exclude: ['pdfjs-dist/build/pdf', 'libraries']
  49. },
  50. {
  51. name: 'libraries'
  52. },
  53. {
  54. name: 'ace/mode-latex'
  55. },
  56. {
  57. name: 'ace/worker-latex'
  58. }
  59. ]
  60. }
  61. }
  62. },
  63. file_append: {
  64. default_options: {
  65. files: [
  66. {
  67. append: '\n//ide.js is complete - used for automated testing',
  68. input: 'public/minjs/ide.js',
  69. output: 'public/minjs/ide.js'
  70. }
  71. ]
  72. }
  73. }
  74. }
  75. grunt.initConfig(config)
  76. return grunt.registerTask(
  77. 'compile:minify',
  78. 'Concat and minify the client side js',
  79. ['requirejs', 'file_append']
  80. )
  81. }