RequireJS不使用commonjs需要语法

时间:2013-12-13 19:58:23

标签: javascript requirejs commonjs

我正在尝试使用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

1 个答案:

答案 0 :(得分:1)

你为什么不这样用它:

主要的js:

require(['mod'], function(mod) {
     console.log(mod.prop);
});

否则使用:

main.js:

define(function(require) {
    var mod = require("mod");
});