相关疑难解决方法(0)

用于RequireJS的Shim Twitter Bootstrap

RequireJS 文档说,要支持旧版本的IE,您需要进行配置enforceDefine: true.

因此,如果您想支持Internet Explorer,捕获加载错误,并通过直接的define()调用或shim配置获得模块化代码,请始终将enforceDefine设置为true.有关示例,请参阅下一节.

注意:如果你设置enforceDefine:true,并且使用data-main =""来加载主JS模块,那么主JS模块必须调用define()而不是require()来加载它需要的代码.主JS模块仍然可以调用require/requirejs来设置配置值,但是对于加载模块,它应该使用define().

由于Twitter Bootstrap不是AMD模块,我需要使用它来使其工作.这是我配置它的方式;

<script type="text/javascript">
    var require = {
        paths: {
            "bootstrap": "../bootstrap",
            "jquery": "../jquery-1.8.2"
        },
        shim: {
            "bootstrap": ["jquery"]
        },
        enforceDefine: true
    };
</script>
Run Code Online (Sandbox Code Playgroud)

后来当我的模块想要bootstrap作为依赖项时,我仍然得到一条错误消息;

Error: No define call for bootstrap
Run Code Online (Sandbox Code Playgroud)

http://requirejs.org/docs/errors.html#nodefine

如果我理解正确的文档,enforceDefine应该忽略垫片,但事实并非如此.

我在这做错了什么?

requirejs twitter-bootstrap

37
推荐指数
3
解决办法
3万
查看次数

标签 统计

requirejs ×1

twitter-bootstrap ×1