如何防止requirejs加载knockout.js?

时间:2013-07-31 13:04:39

标签: knockout.js requirejs

我目前正在使用requirejs来加载大多数模块,但我需要使用以旧方式加载单个脚本knockout.js:

<script src='/path/to/knockout.js' ></script>

我遇到了问题,当呈现页面时,我看到了这个标记:

<script async="async" type="text/javascript" src="knockout.min.js"></script>

但我不想使用require.js加载knockout。

如何使用require.js为指定的脚本禁用加载?


我发现了一个解决方案:

在挖掘了knockout的来源之后,我找到了有趣的代码片段,它确定require.js的存在并自动在require中注册模块,这是一个有罪的代码块:

    // Support three module loading scenarios
if (typeof require === 'function' && typeof exports === 'object' && typeof module === 'object') {
    // [1] CommonJS/Node.js
    var target = module['exports'] || exports; // module.exports is for Node.js
    factory(target);
} else if (typeof define === 'function' && define['amd']) {
    // [2] AMD anonymous module
    define(['exports'], factory);
} else {
    // [3] No module loader (plain <script> tag) - put directly in global namespace
    factory(window['ko'] = {});
}

您可以根据需要进行更改(例如,您可以用其他内容替换function)以实现执行最后else代码分支,结果ko将在全局窗口空间中注册。< / p>

0 个答案:

没有答案