Difference between productionMode and debug/development mode

I have a spring boot application using a web component [Google Sign in component]
(https://vaadin.com/directory/component/google-sign-in-component) and it is working in vaadin debug mode. To get it work also in es5 browsers I set vaadin.productionMode=true and then it works in es5 browsers but throws Uncaught TypeError in es6 browsers.

/**
 * The main view.
 */
@HtmlImport("styles/shared-styles.html")
@Route
public class MainView extends VerticalLayout implements RouterLayout, AfterNavigationObserver, BeforeEnterObserver {

        GoogleSignin signin;
		
		public MainView(@Autowired UserRepository userRepository, @Autowired @Value("${google.client_id}") String googleClientId) {
				
				signin = new GoogleSignin(googleClientId);
				...
				add(signin);				
@Tag("google-signin")
@HtmlImport(
    value = "bower_components/google-signin/google-signin.html",
    loadMode = LoadMode.LAZY
)
public class GoogleSignin extends Component { ...
Uncaught TypeError: Cannot read property 'appendChild' of null at Object.init (vaadin-flow-bundle-873531d033603c9.cache.html:formatted:7512)

init: function() {
        this._apiLoader = document.createElement('google-js-api');
        this._apiLoader.addEventListener('js-api-load', this.loadAuth2.bind(this));
        if (Polymer.Element) {
          document.body.appendChild(this._apiLoader);
        }
},

Where can I find the difference handling the htmlimports? Is the loadMode = LoadMode.LAZY the only way to control the processing?
Maybe here are some relevant infos: [How to support IE ?]
(https://vaadin.com/forum/thread/17151164/how-to-support-ie)