我正在尝试使用requireJS加载Modernizr功能动态检测。
由于 Modernizr 已内置AMD支持,因此这应该不是问题。
我的 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 项目,其中包括基本设置和运行演示。