Писал вопрос ещё и на стек, возможно такой вариант кому-то покажется понятней:
Я меняю способ сборки typescript библиотеки с *gulp concat* + *typescript compiler* на *Webpack*. И внедряю *es2015 modules*.
Теперь библиотека может быть использована с `require/import`. А также необходимо оставить возможность использовать библиотеку классическим добавлением скрипта в *html header*.
Раньше, все *functions/variables* были спрятаны в глобальную переменную `Survey`. Для этого использовались *неймспейсы typescript* `namespace Survey {}` и все классы или переменные, которые хотелось отдать наружу, имели ключевое слово export.
Я удалил неймспейсы и перевёл всё на *es2015 модули* и теперь, чтобы получить ту же глобальную переменную я был вынужден включить импорты всеx необходимыx классов/переменных во входную точку *webpack* сборки:
https://github.com/dmitrykurmanov/surveyjs/blob/ma...
Есть ли какой-то другой способ достичь того же, но без создания такого огромного и ужасного файла?