Modernization of MODX's Build Environment

I think many might agree that some of the tooling for the back end’s template build is, in technology time, a relic from a bygone era. Rather than complain or keep asking very busy people to please refactor it, I’d like to take a stab at it myself.

The primary goals of a proposed change would:

  1. Enable the use of ES6 in the source javascript
  2. Change Sass implementation to Dart Sass, as Node/Lib Sass are deprecated
  3. Clean out any unnecessary tasks/dependencies

On the first goal, the strategies could be:

  • Simply replace grunt-contrib-uglify with grunt-terser and make the necessary config adjustments; or
  • Consider a move from Grunt to Webpack if modularization (now or down the road) might benefit the back end and implement terser in that environment

On the third goal:

  • I may just not be seeing it or be familiar enough with the MODX backend template, but it looks to me as if bourbon and bourbon-neat are not used in Revo. If that’s the case, remove these dependencies.
  • There is so little in the way of images (of any significant size) in the interface that running imageoptim seems like overkill. I’d suggest removing it.

For those more intimately familiar with this subject, especially the maintainers/code owners, please let me know your thoughts on this and any other suggestions you may have.