gpt4 book ai didi

jquery - 是否可以使用 Require.js 进行配置继承?

转载 作者:行者123 更新时间:2023-12-01 05:56:55 28 4
gpt4 key购买 nike

我正在尝试找出在 Require.js 中进行配置准继承的最佳方法。

我有一个根 Web 应用程序,然后是在其自己的上下文中的子 Web 应用程序,如下所示:

/
/configuration
/reporting

根 (/) Web 应用程序将有一个基本 Require.js 配置对象,然后配置和报告 Web 应用程序将有自己的覆盖。我已经通过使用 jQuery 扩展方法使其工作,例如:

var rootConfig = {
// lots of stuff here: paths, shim, and baseUrl
}
var localConfig = {
paths: {
// this app wants to have a different version, so override
jqueryui: '/js/lib/ui/jquery-ui-1.8.22.custom.min'
}
}

var mergedConfig = {};
$.extend(true, mergedConfig, rootConfig, localConfig);

require.config(mergedConfig);

这工作正常,但它有点破坏了 Require.js 范式,因为我必须在 Require.js 之外静态加载 jQuery 库。 有什么想法可以更优雅地做到这一点吗?

我已经看过 James Burke 的多页示例,与此类似,但我不认为精确继承配置是重点。

感谢您的帮助!

最佳答案

我最终只是从其他几个来源中剔除了一个非 jquery 扩展函数来实现这一点,这样我就可以在 require.js 执行之前避免加载 jquery...

var com = com || {};
com.my = com.my || {};
com.my.extend = function (obj1, obj2) {
for (var p in obj2) {
try {
if ( obj2[p].constructor == Object ) {
obj1[p] = com.my.extend(obj1[p], obj2[p]);
} else {
obj1[p] = obj2[p];
}
} catch(e) {
obj1[p] = obj2[p];
}
}

return obj1;
}

...然后在调用 require.config 之前使用它来扩展/合并配置对象,例如:

// merge localConfig with the root config
var com.my.mergedConfig =
com.my.extend(com.my.rootConfig, com.my.childConfig);

// apply the configuration to require.js
require.config(com.my.mergedConfig);

希望对其他人有帮助。

关于jquery - 是否可以使用 Require.js 进行配置继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14842926/

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