Gruntfile.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. },
  37. skipDirOptimize: true,
  38. modules: [
  39. {
  40. name: 'main',
  41. exclude: ['libraries']
  42. },
  43. {
  44. name: 'ide',
  45. exclude: ['pdfjs-dist/build/pdf', 'libraries']
  46. },
  47. {
  48. name: 'libraries'
  49. },
  50. {
  51. name: 'ace/mode-latex'
  52. },
  53. {
  54. name: 'ace/worker-latex'
  55. }
  56. ]
  57. }
  58. }
  59. },
  60. file_append: {
  61. default_options: {
  62. files: [
  63. {
  64. append: '\n//ide.js is complete - used for automated testing',
  65. input: 'public/minjs/ide.js',
  66. output: 'public/minjs/ide.js'
  67. }
  68. ]
  69. }
  70. }
  71. }
  72. grunt.initConfig(config)
  73. return grunt.registerTask(
  74. 'compile:minify',
  75. 'Concat and minify the client side js',
  76. ['requirejs', 'file_append']
  77. )
  78. }