Подтвердить что ты не робот

Включите Modernizr в RequireJS и используйте теги Modernizr в заголовке

У меня проблема с RequireJS и Modernizr.

Я хочу, чтобы ресурс Modernizr был на высоте. И все остальное в теле. Причина в том, что Modernizr необходимо сделать некоторые вещи перед DOMContentLoad. Я хочу, чтобы загрузить модуль Modernizr в другие модули с помощью RequireJS. Как я могу это сделать как в dev, так и в производственной среде? Я использую requirejs, который вытягивает все зависимости и минимизирует все ресурсы. И yoman build заменяет <script data-main="scripts/main" src="scripts/vendor/require.js"></script> на мини-версию.

под тегом body:

<!-- build:js ikl.app.js -->
<script data-main="scripts/main" src="scripts/vendor/require.js"></script>
    <!-- endbuild -->
    <script>
    requirejs.config({

        paths: {

            'jquery'        : 'vendor/jquery',
            'handlebars'    : 'vendor/handlebars',
            'ember'         : 'vendor/ember',
            'ember-data'    : 'vendor/ember-data',
            'modernizr'     : 'vendor/modernizr' // This should be removed


        },

        baseUrl: 'scripts',


        shim: {


            'jquery' : {

                exports : 'jQuery'

            },

            'ember': {

                deps: ['jquery', 'handlebars'],
                exports: 'Ember'

            },

            'ember-data': {

                deps: ['ember'],
                exports: 'DS'

            },

            'handlebars': {

                exports: 'Handlebars'

            },

            'modernizr': {
                exports: 'Modernizr'
            }

        }

    });

    require([

        'modules/system/controllers/system.controller',
        'jquery',
        'ember',
        'ember-data',
        'handlebars',
        'modernizr'

    ], 
        function( systemController ) {
            systemController.renderView();
        }

    );

    </script>
4b9b3361

Ответ 1

Вы должны иметь возможность получить оба.

  • Сначала удалите конфигурацию путей, относящуюся к modernizr, вам это не понадобится
  • Далее Load Modernizr в голове - это создаст окно. Переменная Modernizr.
  • Наконец, перед установкой начальной загрузки определите модуль modernizr

    define('modernizr', [], Modernizr);
    require(['foo', 'bar', 'modernizr'], function(foo, bar, modernizr) {
         //..profit
    }