2

是否有任何干净的方法来加载具有 js 扩展名而不是 AMD 内容的文件?

我使用enforceDefine配置来确保我的实际 AMD 代码在开发时工作。

到目前为止,我已经设法组合了一个将enforceDefine设置为 false 的插件,因此我可以像这样加载第 3 方库require(['noamd!handlebars']):这对我来说似乎并不太难,但我想知道是否有更好的方法。

我目前正在测试noext插件,它完成了它的工作,但也以一种 hacky 的方式。我注意到它将 noext 参数两次应用于 url ( test.txt?noext=1&noext=1)。我可以忍受,但最好我想摆脱所有额外的参数。可以这样做吗?

4

2 回答 2

7

要加载不是 JS 的文件(例如.handlebars, .mustache),那么文本插件将适合您的目的。

要加载普通的 js 文件,您可以使用 RequireJS 作为脚本加载器:

require(['full/path/to/file.js'], function(){
    // Fired when file is loaded but if non AMD
    // no value will be passed to this function
});

如果您想将非 AMD 文件视为一个模块,那么您可以使用shim配置来实现它。

于 2012-12-16T11:24:24.373 回答
3

您可以在末尾附加 ?MEH=BLAH 以停止 .js 附加

例如

requirejs.config({
    paths: {
        "dynamicstripconfig": "../php/domain/config.php?dynamic=1"
    }
});

此外还有一个插件,但不支持路径-> https://github.com/millermedeiros/requirejs-plugins

添加了修复路径支持的问题-> https://github.com/millermedeiros/requirejs-plugins/issues/47

如果您的文件实际上不是动态 js 文件,请使用文本插件 -> https://github.com/millermedeiros/requirejs-plugins

于 2014-03-11T09:00:31.520 回答