I'm not a web dev, but this article has uncovered yet another thing in the js ecosystem that just seems crazy to me. This makefile snippet: lib/index.js: src/index.js mkdir -p $(dir $@) babel $ The source and the output are both called index.js? Why, God, WHY???
It is not realistic/optimal to try to write your javascript to be supported by all browsers or runtime clients. It's better to write using the latest spec, and just have it dumbed down for you by transpilers at build time
Some more explanation here: https://www.excella.com/insights/typescript-vs-es6-vs-es2015