jan*_*mon 12 javascript modernizr requirejs
我正在尝试加载使用requireJS动态检测的Modernizr功能.
由于Modernizr内置了AMD支持,这应该不是问题.
我的requireJS配置包含Modernizr源目录和功能检测目录的路径:
requirejs.config({
paths: {
"modernizr" : "components/modernizr/src",
"feature-detects": "components/modernizr/feature-detects"
}
});
Run Code Online (Sandbox Code Playgroud)
让我们假设我的一个观点需要svg测试.
我的视图定义可能如下所示
define(["feature-detects/svg"], function() { .. });
Run Code Online (Sandbox Code Playgroud)
遗憾的是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"
}
});
Run Code Online (Sandbox Code Playgroud)
有没有更简洁的方法告诉requireJS components/modernizr/src/无法找到文件时进行搜索?
更新
我创建了一个示例github项目,其中包括基本设置和运行演示.
Stu*_*Cox 19
Modernizr的AMD结构(目前)仅用于其内部构建过程.我们已经讨论了暴露这个问题,以便它可以像你尝试过的那样使用,但尚未就方便的方式达成一致.RequireJS的Modernizr插件可以是一个选项.
你在使用Bower吗?如果是这样,值得注意的是Modernizr 还不适合与Bower一起使用.
将Modernizr绑定到您的构建过程的推荐方法是使用grunt-modernizr,它会自动在代码中找到对Modernizr检测的引用(或者您可以显式定义它们),然后您可以像任何一样使用生成的Modernizr构建您需要的其他AMD依赖:
define(['path/to/built/modernizr.js'], function (Modernizr) {
if (Modernizr.svg) {
...
}
});
Run Code Online (Sandbox Code Playgroud)
小智 11
我的建议是有一个垫片
paths: {
'Modernizr': 'PATH TO MODERNIZR'
},
shim: {
'Modernizr': {
exports: 'Modernizr'
}
}
Run Code Online (Sandbox Code Playgroud)
=================
您可以在脚本中使用define
define(['Modernizr'],function(Modernizr) {
'use strict';
console.log(Modernizr)
// This should log the Modernizr function
//For Example
if(Modernizr.boxshadow){
// Do something here
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13223 次 |
| 最近记录: |