gpt4 book ai didi

javascript - 使用上下文时 RequireJs 忽略配置

转载 作者:太空宇宙 更新时间:2023-11-04 15:33:31 26 4
gpt4 key购买 nike

这就是我的页面的样子

<script>
// set the configuration for require.js syncronously
var require = {
context: 'default',
baseUrl: '/scripts',
bundles: {
'bundles/main': ['utils']
}
};
</script>


<script src='/scripts/libs/require.js'></script>

<script>
// this throws an error because it tries to load module1.js from the current relative path instead of /scripts/module1.js
require(['module1'],function(module1){
module1.test();
});
</script>

我在 stackoverflow 上查看了几个类似的问题,例如这个答案:Require JS is ignoring my config

以及此处的文档:https://github.com/requirejs/requirejs/wiki/Patterns-for-separating-config-from-the-main-module

如果我正确理解这一点,通过在包含 require 脚本之前同步声明 require,这些设置应该在加载 module1 时可供 require 使用,但它似乎不起作用。

我最初尝试过这种方式,结果相同:

 <script src='/scripts/libs/require.js'></script>

<script>
require.config({
context: 'default',
baseUrl: '/scripts',
bundles: {
'bundles/main': ['utils']
}
});
</script>

编辑:显然,当我删除上下文行时,它可以正常工作。我不知道为什么这会破坏它。

最佳答案

问题是您在与配置中使用的上下文不同的上下文中发出 require 调用。如果您未指定上下文,则默认名称为 _(而不是 default)。根据您显示的代码,您的配置中的上下文是默认。但是您使用 RequireJS 提供的默认 require 调用,该调用在名为 _ 的上下文中运行。

当您指定与默认值不同的上下文名称时,您希望保存 require.config 调用的返回值,并使用该值而不是默认的 require:

var myReq = require.config({
context: 'default',
baseUrl: '/scripts',
bundles: {
'bundles/main': ['utils']
}
});

myReq(['module1'],function(module1){
module1.test();
});

参见here有关如何使用 context 的文档。

如果您实际上不需要使用上下文,那么最简单的解决方案就是从配置中删除 context: 'default'

关于javascript - 使用上下文时 RequireJs 忽略配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44598239/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com