我正在尝试使用commonjs var mod=require("mod");
语法让RequireJS工作并收到此错误:
Uncaught Error: Module name "mod" has not been loaded yet for context: _. Use require([])
此错误的documentation说明:
如果错误消息包含Use require([]),那么它应该是一个顶层的require调用(不是在define()调用中的require调用)应该使用async的回调版本来加载代码
但我的代码并非如此 - 要求行是在define
的调用范围内。
这是我精简的测试代码:
的test.html:
<!DOCTYPE html>
<html>
<head>
<title>Require JS test</title>
<script data-main="main" src="require.js"></script>
</head>
<body>
</body>
</html>
main.js:
define(function() {
var mod=require("mod");
});
mod.js:
define(function() {
return {
prop: 123
};
});
require.js是版本2.1.9 - http://requirejs.org/docs/release/2.1.9/comments/require.js
答案 0 :(得分:1)
你为什么不这样用它:
主要的js:
require(['mod'], function(mod) {
console.log(mod.prop);
});
否则使用:
main.js:
define(function(require) {
var mod = require("mod");
});