Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 前缀脚本文件的requirejs路径映射_Javascript_Requirejs_Amd - Fatal编程技术网

Javascript 前缀脚本文件的requirejs路径映射

Javascript 前缀脚本文件的requirejs路径映射,javascript,requirejs,amd,Javascript,Requirejs,Amd,在这篇文章中,我试着用谷歌搜索到我的心的内容,并在requirejs上搜索API文档,但没有结果 是否可以根据我将要使用的脚本文件/模块的前缀,为requirejs指定要使用的路径前缀 我想在所有对“kendo.xxxModuleNamexxx.min.js”的调用之前加上“kendo/kend.xxxModuleNamexxx.min.js”-以保持我的解决方案整洁,而不是有一个庞大的脚本文件夹:) 结构: 索引 剧本 jquery.min.js sototype.min.js knock

在这篇文章中,我试着用谷歌搜索到我的心的内容,并在requirejs上搜索API文档,但没有结果

是否可以根据我将要使用的脚本文件/模块的前缀,为requirejs指定要使用的路径前缀

我想在所有对“kendo.xxxModuleNamexxx.min.js”的调用之前加上“kendo/kend.xxxModuleNamexxx.min.js”-以保持我的解决方案整洁,而不是有一个庞大的脚本文件夹:)

结构:

  • 索引
    • 剧本
    • jquery.min.js
    • sototype.min.js
    • knockout.min.js
    • someothermodules.js
    • requirejs.js
    • main.js
    • 剑道
      • kendo.web.min.js
      • kendo.combobox.min.js
      • kendo.fx.min.js
仅供参考-所有剑道脚本都与AMD兼容,并以前缀形式报告其模块Id:kendo.moduleName。。。。。等等

更新:不幸的是,由于我的目录中有许多其他脚本,我仍然要求我的baseUrl成为“/scripts”文件夹。(剑道脚本的数量如此之多,这就是为什么我要为这些前缀脚本创建一个单独的基本文件夹)

提前感谢:)

James

您可以编写自己的规范化插件来协调资源名称并加载“剑道”脚本。不幸的是,我不知道是否有办法加载没有前缀的插件。因此,您需要在所有依赖项前面加上
kendo

//请参见https://requirejs.org/docs/plugins.html
定义(‘剑道’,(要求、导出、模块)=>{
返回{
normalize:函数(名称,normalize){
返回“剑道/”+名称
},
加载:函数(名称、请求、onload、配置){
请求([名称]、函数(值){
超载(价值);
});
}
}
})
用法:


require(['kendo!a.js','kendo!b.js'],(a,b)=>{return…}

您是否尝试过requirejs.config({baseUrl:'[Your base url]',})?是的,对不起,我的问题可能不清楚,我仍然希望我的baseUrl映射到“scripts”目录…我会更新这个问题。谢谢-还有其他想法吗?:)您是否尝试用返回新路径的函数替换文件名?@Antoine在哪里替换文件名/是否需要对所有模块ID执行此操作?如果可能的话,我希望有一个更通用的解决方案,这样我就不需要继续维护单个文件/文件夹了。是的,这将需要对所有文件进行维护。另一个想法是:用如下内容替换整个剑道包含部分:(function(){….})(),这样它将在运行时执行。在内部,您可以读取包含所有文件的目录,创建散列,并将其返回给requirejs。我不太清楚,如果不清楚,你可以把你当前的requirejs代码,我会用我的意思来编辑它。