gpt4 book ai didi

javascript - 动态加载require.js的依赖

转载 作者:行者123 更新时间:2023-12-02 16:56:50 32 4
gpt4 key购买 nike

我正在使用 require.js 加载项目的依赖项。类似的东西

var deps = [];
if( some condition )
deps = [dep1, dep2, ...]
else
deps = [other1, other2, ...]
define(deps, function(arg1, arg2, ....){

});

这对我来说效果很好。问题是当我缩小代码时,我遇到以下问题:

Uncaught Error: Mismatched anonymous define() module: function (e,t.....

请知道解决办法的人帮帮我。提前致谢。

最佳答案

r.js 将检测要从数组中包含的 deps,但如果 deps 是动态的,就像您的情况一样,则不会检测到

对于动态 deps,您可以配置 build.js 文件以包含您将需要的动态 deps 以及模块

假设下面的代码

main.js

var x = 1;
var deps=[];
if(x > 0){
deps = ['.\mod1'];
}
else{
deps = ['.\mod2'];
}
define(deps, function(x){
return x * 10;
});

mod1.js

define([], function(){
return 5;
});

mod2.js

define([], function(){
return 10;
});

r.js 不会在 main 中包含 mod1 和 mod2,因为它们不是明确的 deps,因此我们必须指示 r.js mod1 和 mod2 可能是 main 的 deps,我们在 build.js 中执行此操作

build.js

({
paths: {
},
shim: {
},
baseUrl: "app",
removeCombined: true,
findNestedDependencies: true,
inlineText: true,
optimizeAllPluginResources: true,
stubModules: ['text'],
dir: "app-dist",
modules: [
{
name: "main",
include: ["mod1","mod2"]
}
]
})

通过此设置,我们指示 r.js 将 mod1 和 mod2 与 main.js 一起包含

希望这很清楚

关于javascript - 动态加载require.js的依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26113754/

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