Переменные среды AWS Opsworks в специальном рецепте шеф-повара

То, что вы делаете , не может работать надежно , потому что вы загружаете конфигурацию RequireJS асинхронно и , у вас есть синхронный код, который зависит от этой конфигурации.

Вот что происходит:

  1. Эта строка:
    
    
    вызывает загрузку RequireJS и вызывает требование RequireJS для планирования асинхронной загрузки для вашего /js/shop2/springen/app. Атрибут async этого элемента также делает его так, что браузер имеет право загружать RequireJS асинхронно. Если он загружает RequireJS асинхронно, это связывает проблему, с которой вы столкнулись, поскольку к моменту запуска вашего другого элемента не указано, загружен ли ваш основной модуль или нет, потому что (см. Выше) он загружается асинхронно. Поэтому RequireJS действительно может быть загружен , но он, возможно, еще не настроен , потому что ваша конфигурация находится в модуле, который может быть загружен или не может быть загружен к тому моменту, когда этот скрипт запустить. Вот почему typeof require будет функцией, но вы получите ошибки, пытаясь загрузить модули, зависящие от вашей конфигурации. $(document).ready не помогает, потому что событие, которое вызывает $(document).ready, может произойти до того, как RequireJS загрузил основной модуль.

Если вы не можете поместить код require(['Search']... в свой основной модуль , что вы можете сделать, это удалить вызов requirejs.config из /js/shop2/springen/app, а затем добавить элемент