Use JavaScript tool chain for frontend development
This is very meta and rather a discussion related to many issues than an issue itself.
I suggest using node.js for
- dependency resolution (#14634 (closed), #20675 (closed))
- translating SASS into CSS (#18432 (closed))
- running JavaScript tests (!5787 (closed))
- calculating JavaScript test coverage (!5052 (merged))
- linting JavaScript (!5445 (merged))
We already use node.js and we already use JavaScript tools wrapped in a Gem. However
- some tools have no Gem, like istanbul which is required by teaspoon for test coverage
- some tools have a wrapper Gem which is not straightforward to use
- wrappers are by nature always behind the current development (depending on the maintainer that may be critical)
- wrappers may introduce problems which are not in the underlying tool
- wrappers may have a simplified API missing on parameters (e.g. https://gitlab.com/gitlab-org/gitlab-ce/issues/20757#note_13735035)
- people writing JavaScript know JavaScript but not necessarily Ruby
- Rails is not a JavaScript framework
What do you think, frontenders?