我正在尝试使用requireJS动态加载Modernizr功能检测。由于Modernizr已经内置了AMD支持,这应该不是问题。
我的requireJS配置包含指向Modernizr源目录和功能检测目录的路径:
我的requireJS配置包含指向Modernizr源目录和功能检测目录的路径:
requirejs.config({
paths: {
"modernizr" : "components/modernizr/src",
"feature-detects": "components/modernizr/feature-detects"
}
});
假设我的一个视图需要进行 svg 测试。
我的视图定义可能看起来像这样
define(["feature-detects/svg"], function() { .. });
很遗憾,svg.js
无法找到Modernizr.js
,因为所有的特性检测和Modernizr源文件都没有指定任何目录而加载了Modernizr:define(['Modernizr'],..
。
这会导致非常丑陋的require.config。
requirejs.config({
paths: {
"Modernizr": "components/modernizr/src/Modernizr",
"addTest": "components/modernizr/src/addTest",
"ModernizrProto": "components/modernizr/src/ModernizrProto",
"setClasses": "components/modernizr/src/setClasses",
"hasOwnProp": "components/modernizr/src/hasOwnProp",
"tests": "components/modernizr/src/tests",
"is": "components/modernizr/src/is",
"docElement": "components/modernizr/src/docElement",
"feature-detects": "components/modernizr/feature-detects"
}
});
有没有更简便的方法告诉requireJS在未找到文件时搜索components/modernizr/src/
目录?
更新
我创建了一个示例github项目,其中包括基本设置和正在运行的演示。
r.js
脚本将我的应用程序构建为一个文件。如果我可以使用 requireJS 定义 modernizr 依赖关系,那将是非常棒的。 - jantimon