我正在努力获得一个基本的需求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");
}
答案 0 :(得分:0)
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");
});
});