是否有任何干净的方法来加载除js扩展名以外的文件而不是AMD内容?
我使用 enforceDefine 配置确保我的实际AMD代码在开发过程中有效。
到目前为止,我已设法将 enforceDefine 设置为false的插件放在一起,因此我可以加载第三方库:require(['noamd!handlebars'])
。这对我来说似乎不太讨厌,但我想知道是否有更好的方式。
我目前正在测试 noext 插件,它可以完成它的工作,但也是一种hacky方式。我注意到它将noext参数两次应用到网址(test.txt?noext=1&noext=1
)。我可以忍受这一点,但最佳的是我想摆脱所有额外的参数。可以这样做吗?
答案 0 :(得分:7)
要加载非JS的文件(例如.handlebars
,.mustache
),the text plugin符合您的目的。
要加载普通的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文件视为模块,则you can use the shim
config来实现它。
答案 1 :(得分: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