javascript - 设置 RequireJS 时遇到问题

标签 javascript jquery requirejs

我正在尝试让一个基本的 require JS 应用程序正常工作,但我遇到了一些困难,有人可以帮忙吗?我也在使用 Laravel。

包含脚本

<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 会将其作为第一个任务加载到依赖项列表中,以便为您的应用程序初始化并注入(inject)其他依赖项。

有两种方法可以实现此目的。

使用单独的文件(按照您的方式)

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");
    });

});

关于javascript - 设置 RequireJS 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29183593/

相关文章:

javascript - 如何在 TSLint 中对 js 和 ts 使用相同的规则

javascript - 当父键名称未知时访问 JSON 项

javascript - 为什么我的 grunt-contrib-requirejs 没有优化任何东西?

javascript - 设置内部样式或使用 JavaScript/jQuery 操作内部 &lt;style&gt; 表的正确方法

javascript - 使元素具有相同的高度在调整大小时不起作用

javascript - 动态创建的复选框单击事件选择整行而不是仅选择 jquery 数据表中的复选框。这是为什么?

javascript - 使用 jQuery stop() 暂停超时功能

javascript - 我需要在嵌套的 require 调用中列出多少个依赖项?

javascript - 使用 RequireJS 加载 Marionette (v3) 的正确方法是什么?

javascript - 如何使用 JavaScript 为 Google API 生成访问 token (以供将来使用)?