[英]Configuration of requirejs and shim
我有这种配置:
require.config({
paths: {
jquery: '../libs/jquery/dist/jquery',
uicore: '../libs/jquery-ui/ui/jquery.ui.core',
uiwidget: '../libs/jquery-ui/ui/jquery.ui.widget',
uidialog: '../libs/jquery-ui/ui/jquery.ui.dialog'
},
shim: {
uicore: ['jquery'],
uiwidget: ['uicore'],
uidialog: ['uiwidget']
},
urlArgs: "bust=" + (new Date()).getTime()
});
require(['uidialog'], function (d) {
console.log(d); // undefined;
});
那么,我的代码有什么问题呢? 为什么d是未定义的? 每个文件都已下载,jquery的版本为2.1。
请帮忙 :(
在main.js内部,您可以使用require()来加载需要运行的任何其他脚本。 这确保了一个入口点,因为您指定的数据主脚本是异步加载的。
require([“ helper / util”],function(util){//此函数在加载脚本/helper/util.js时被调用。//如果util.js调用define(),则直到该函数被激发// util的依赖项已加载,并且util参数将// //“ helper / util”的模块值。
我建议,例如:
require.config({
baseUrl: 'js/lib',
paths: {
jquery: 'jquery-1.9.0'
}
});
然后:
require(['jquery'], function( jq ) {
console.log( jq ) // OK
});
可能您的配置路径错误。
您尝试过:
define(['jquery'], function (jq) {
return jq.noConflict( true );
});
答案很简单:就是导出$
。 像这样:
'ui.core': {
deps: ['jquery'],
exports: '$'
},
'ui.widget': {
deps: ['ui.core'],
exports: '$'
},
'ui.button': {
deps: ['ui.core'],
exports: '$'
},
'ui.dialog': {
deps: ['ui.widget', 'ui.button'],
exports: '$'
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.