重新定义一个RequireJS模块 - 这是可能的吗

Redefining a RequireJS module -- is it possible?

本文关键字:模块 一个 新定义 定义 RequireJS      更新时间:2023-09-26

基本上,我访问了一个使用RequireJS的页面。我想对此页面进行调整,所以我选择了用户脚本的路线。在查看客户端代码时,我看到有一个模块定义为:

define("settings", [], function() {
    return {
    SETTINGA: "100",
    SETTINGB: "200",
    etc.
    }
})

我想将我自己的项目添加到设置数组中,以及更改一些设置,而无需在我的用户脚本中重新定义模块(进行更改),然后删除/重新添加它。是否可以只对此模块进行调整?


附言我正在使用脚本注入技术来让我的用户脚本与原始页面中的其他JavaScript进行交互。

此外,在 Javascript 控制台中执行require("settings")会返回一个对象(而不是数组),所以我不能做 require("settings")[0]require("settings").push(...) 之类的事情,但是我可以通过执行require("settings").SETTINGA来访问设置。所以,我不确定如何添加/重新定义设置,因为它不是一个数组?

使用这个:

require('settings').new_property = 'new value';

您无法检索设置或将设置添加到"设置数组"的原因是您一开始就没有创建数组。 {foo:bar}对象文字,而不是数组文字 ([foo,bar] )。