Уже около полугода я пишу на ES6 (который в итоге назвали ES-2015) и ES7, с использованием [бабеля][1] в качестве транслятора. Писать мне приходилось в основном серверную часть, соответственно, использование модулей было само собой разумеющимся: до ES6 — с помощью [модульной системы самой ноды][2], а теперь — с помощью [стандартизированной семантики][3] самого языка. И мне захотелось написать статью, в которой расписать тонкости, плюсы, подводные камни и необычности новообретенной модульной системы языка: отчасти — чтобы другим было проще, отчасти — чтобы разобраться во всём окончательно самому :) Я разберу, что такое модуль, как происходит экспорт сущностей, как происходит импорт сущностей, чем система модулей ES6 отличается от системы модулей в NodeJS. [Итак, начнем.][4]
[1]:
https://babeljs.io/
[2]:
https://nodejs.org/api/modules.html
[3]:
http://www.ecma-international.org/ecma-262/6.0/#sec-module-semantics
[4]:
http://habrahabr.ru/post/267639/#habracut