javascript - 在 RequireJS 中包含 Modernizr,并在 head 标签中包含 Modernizr

标签 javascript requirejs modernizr

我对 RequireJS 和 Modernizr 有疑问。

我希望 Modernizr 资源在头部。以及体内的其他一切。原因是 Modernizr 需要在 DOMContentLoad 之前做一些事情。我希望能够使用 RequireJS 将 Modernizr 模块加载到其他模块中。我怎样才能在开发和生产环境中做到这一点?我使用 requirejs 来提取所有依赖项并缩小所有资源。 yeoman 构建替换了 <script data-main="scripts/main" src="scripts/vendor/require.js"></script>缩小版。

正文标签下:

<!-- 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>

最佳答案

你应该能够同时获得两者。

  • 首先,删除与 modernizr 相关的路径配置,您将不需要它
  • 下一步在头部加载 Modernizr - 这将创建一个 window.Modernizr 变量。
  • 最后,在您的引导需求之前,定义 modernizr 模块

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

关于javascript - 在 RequireJS 中包含 Modernizr,并在 head 标签中包含 Modernizr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13451661/

相关文章:

javascript - AngularJS 通过 ng-model 触发 ng-change

requirejs - 使用 requirejs 嵌入 instagram 视频

javascript - 将 require.js 与 rsvp 结合使用时出现未捕获的 ReferenceError : RSVP is not defined , 错误

html - Modernizr 检查 CSS3 和 css 动画将不起作用

javascript - 函数的执行顺序不能正常工作

javascript - 为什么 Oranges 和 abc 数组得到相同的输出?

javascript - Requirejs Optimizer r.js 不与节点一起工作

javascript - 结合 LABjs 和 Modernizr 以及 yepnopejs

css - 如何使用 Modernizr 检测是否支持 SVG CSS 背景?

javascript - d3js 拖动圆应该重新排列主边界圆中的其他圆