Я не понимаю разницы между core и feature в angular 2. Насколько я понимаю, существуют три рекомендуемых типа модулей: core, feature и shared.
Если модуль экспортирует некоторые декларации (компоненты, директивы и каналы), и многие модули будут импортировать этот модуль, то этот модуль должен быть совместно используемым модулем (в общем каталоге).
Если модуль выдает некоторые объявления (компоненты, директивы и каналы), и только модуль корня импортирует этот модуль, то этот модуль должен быть основным модулем (в основной директории).
Являются ли функциональные модули одинаковыми? Импортирует только корневой модуль. В этом примере есть CoreModule и функциональный модуль ContactModule. Я не вижу разницы между ними. Оба они импортируются в корневой модуль.