I assume that the polymer template of the EmailField component is not imported, because when building the application, vaadins scan does not see any usage of EmailField in any of the @Route views. IF this is indeed the case, you can workaround this issue by adding this line in your view: private EmailField unusedEmailField;, thereby making vaadin aware that EmailField is used in the application.
FYI: Under 14.0.15, I discovered same problem, but this time with the TextArea component. But unfortunately, the solution Kaspar suggested did not work here.
For now, I have upgraded to 14.2.0.alpha4, which does nót have this problem for the TextArea component.