Angular + Requirejs - загрузка в неправильном порядке

Я пытаюсь загрузить angular и jquery с requirejs. Лучшее, что я могу сделать, это то, что в 50% случаев все загружается правильно, в другой половине я получаю ошибкуNo Module: mainApp

Я предполагаю, что это прерывает половину времени в зависимости от скорости, с которой requirejs асинхронно загружает скрипты.

Когда он работает, я вижу тест «Hello World» (хотя я вижу, что {{text}} мигает до его замены, но я читал, как это исправить здесь). В остальное время я получаю сообщение об ошибке, и {{text}} просто остается на экране.

Github Repo

Tree:

index.html
- js
    - libs
        require.js
    - modules
        mainApp.js
    main.js

main.js

require.config({
  paths: {
    'jQuery': '//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min',
    'angular': '//ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular',
  },
  shim: {
    'angular' : {'exports' : 'angular'},
    'jQuery': {'exports' : 'jQuery'}
  }
});

require(['jQuery', 'angular', 'modules/mainApp'] , function ($, angular, mainApp) {
  $(function () { // using jQuery because it will run this even if DOM load already      happened
    angular.bootstrap(document, ['mainApp']);
  });
});

modules/mainApp.js

define(['angular'], function (angular) {
  return angular.module('mainApp' , []).controller('MainCtrl', ['$scope', function ($scope) {
      $scope.text = 'Hello World';
  }]);
});

Relevant index.html

<head>
    <script src="js/libs/require.js" data-main="js/main"></script>
</head>
<body>
    <div ng-app="mainApp">
        <div ng-controller="MainCtrl">
            {{text}}
        </div>
    </div>
</body>

Ответы на вопрос(3)

Ваш ответ на вопрос