RequireJS with jQuery and Module - Uncaught ReferenceError:Module not defined

时间:2017-02-24 14:29:54

标签: javascript jquery requirejs amd

这里我有一个简单的requirejs设置。它由两个依赖项组成 - 一个是jQuery,另一个是我自己的模块。我在myModule.init()上收到错误:

Uncaught ReferenceError: myModule is not defined

HTML:

<script data-main="js/app.js" src="js/require.js"></script>

app.js中的代码:

requirejs.config({
    baseUrl: 'js/lib',
    paths: {
        app: '../app',
        jquery: 'jquery-3.1.1.min',
    }
});


// Start the main app logic.
requirejs(['jquery', 'app/myModule'],
    function($, myModule) {
        myModule.init();
    });

这是我创建的模块:

define('myModule', function () {
    return {
            init: function(){
                console.log('Hello World!');
            }
        }
});

控制台日志:

Uncaught TypeError: Cannot read property 'init' of undefined

RequireJS Style Guide

1 个答案:

答案 0 :(得分:1)

不要为模块提供名称。

// app/myModule.js
define(function () {
    return {
            init: function(){
                console.log('Hello World!');
            }
        }
});

如果您觉得有必要,请将其与“要求”相匹配,但这是更多的工作,您应该避免它(让requirejs优化工具为您执行此操作):

// app/myModule.js
define("app/MyModule", function () {
    return {
            init: function(){
                console.log('Hello World!');
            }
        }
});