CommonJS causes circular dependency issue and we manually have to manage dependencies like here. ES6 modules seems more sophisticated for managing imports.