我有两个AMD
模块应该互相引用,但是一旦我添加了向后依赖,它就会停止工作。我想它陷入了waiting
状态。
index.html
:
<!DOCTYPE html>
<html>
<head>
<script src="/curl.js"></script>
</head>
<body>
<script>
curl(['m1', 'm2'], function(m1, m2) {
console.log('done', m1, m2);
});
</script>
</body>
</html>
m1.js
:
define(['m2'], function() {
return 1;
});
m2.js
define(['m1'], function() {
return 2;
});
答案 0 :(得分:1)
UPD 看来我错了,curl.js
并不总是解决circular dependencies。
您应该以{{1}}方式声明:
CommonJS
:
index.html
<!DOCTYPE html>
<html>
<head>
<script src="/curl.js"></script>
</head>
<body>
<script>
curl(['m1', 'm2'], function(m1, m2) {
console.log('done', m1.v, m2.v);
});
</script>
</body>
</html>
:
m1.js
define(function(require, exports) {
var m2 = require('m2');
exports.v = 1;
});
m2.js
另一种选择是混合方法(define(function(require, exports) {
var m1 = require('m1');
exports.v = 2;
});
,AMD
):
CommonJS
:
m1.js
UPD 但可能存在一些问题。我还没弄清楚发生了什么。我暂时为其中一个创建了an issue。