设置RequireJS时遇到问题

Having trouble setting up RequireJS

本文关键字:问题 遇到 RequireJS 设置      更新时间:2023-09-26

我正在尝试让一个基本的requireJS应用程序工作,但我遇到了一些困难,有人能帮忙吗?我也在用拉拉威尔。

包括脚本

<body>
    @yield('content')
    <script data-main="{{ asset('/js/main.js') }}" src="{{ asset('/js/require.js') }}"></script>
</body>

config.js

require.config({
    baseUrl: "",
    paths: {
        "jquery": "jquery-2.1.3.min"
    }
});

main.js

require(['config'], function() {
    define(['jquery'], function($) {
        $(document).ready(function()
        {
            alert("test");
        });
    });
});

文件夹目录结构:

/public
-- /js
-- -- jquery-2.1.3.min.js
-- -- config.js
-- -- main.js
-- -- require.js

我得到的错误是:

Uncaught Error: Mismatched anonymous define() module: function () {
        alert("test");
    }

define()包装器应该包装一个模块,而不是嵌套在任何代码块中。在您的情况下,它是require()包装器的子级。

您的main.js文件应该是配置文件。因为require.js会将其作为第一个任务加载到依赖项列表中,以便初始化和注入应用程序的其他依赖项。

你有两种方法可以做到这一点。

使用单独的文件(就像你的方式)

main.js

require.config({
    baseUrl: "",
    paths: {
        "jquery": "jquery-2.1.3.min",
        "app"   : "main_module"
    },
    deps: 'app'
});

main_module.js

define(['jquery'], function($) {
    $(document).ready(function(){
        alert("test");
    });
});

或者将您的配置放入main.js中。然后在中编写代码

require.config({
    baseUrl: "",
    paths: {
        "jquery": "jquery-2.1.3.min"
    }
});
require(['jquery'], function($) {
    $(document).ready(function(){
        alert("test");
    });
});