我正在使用require.js和一个库。不幸的是,看起来当加载库时,结果返回为null。对不起,在使用require.js
时,我可能是个菜鸟postmonger.js
(function(root, factory){
if(typeof define === 'function' && define.amd) {
define('postmonger', [], function(){ return factory(root); });
}else {
root.Postmonger = factory(root);
}
}(this, function(root){
root = root || window;
var Postmonger;
if (typeof(exports) !== 'undefined') {
Postmonger = exports;
} else {
Postmonger = {};
}
Postmonger.noConflict = function(){
root.Postmonger = previous;
return this;
}
console.log(Postmonger);
return Postmonger;
}));
加载postmonger库“customActivity”的代码
define([
'js/postmonger'
], function(Postmonger){
'use strict';
// console.log(postmonger);
console.log(Postmonger);
});
我的运行时脚本
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/require.js"></script>
<script type="text/javascript">
(function() {
var config = {
baseUrl: ''
};
var dependencies = [
'customActivity'
];
require(config, dependencies);
})();
</script>
加载页面时。第一个console.log返回一个对象,第二个返回Null。我一定错过了什么。
答案 0 :(得分:1)
尝试使用postmonger
代替js/postmonger
。
define([
'postmonger'
], function(Postmonger){
'use strict';
// console.log(postmonger);
console.log(Postmonger);
});
编辑 - 为什么加载javscript但是AMD模块为null / undefined。
当需要看到路径js/postmonger
时,它会尝试下载找到的js/postmonger.js
文件并成功加载。但是在这个文件中,我们有一个名为postmonger
的命名模块,代码为
define('postmonger', [], function(){ return factory(root); });
因此,永远不会定义名称为js/postmonger
的模块,因此您未定义。 (你应该根据我的理解得到未定义,但你已经提到它为null)