重新定义一个RequireJS模块 - 这是可能的吗
Redefining a RequireJS module -- is it possible?
基本上,我访问了一个使用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]
)。
相关文章:
- Javascript,访问一个主要对象模块模式中的每个对象
- 错误:$injector:modulerr模块错误(我的第一个SPA应用程序)
- 如何定义一个模块并使用它来分离js文件
- 聚合物是一个框架而不是一个库.如何模块化地使用web组件
- 需要从一个文件中获取多个模块
- 在一个表达式中加载并使用ES6模块
- 在我的JavaScript模块中绑定一个点击事件
- ESDoc将我所有的模块方法放在一个标题下,而不是放在每个文件下,我该如何改变这种行为
- 从一个模块暴露到另一个模块
- 查找与锁定和更新调度相关的一个或两个节点模块
- NodeJS:一个全局EventEmitter或每个模块它'他自己的
- 如何将多个 AMD 模块捆绑在一个文件中
- 节点模块对象范围:在所有函数之间共享一个对象
- 从导出的模块返回变量,并在另一个文件(NodeJS)中使用它
- 在节点中.js“模块”始终是一个对象
- 在单独的模块中放入一个脚本
- Node.js创建一个模块来收集内存(ram)信息
- 如何从另一个模块调用函数
- 无法调用requirejs中的另一个模块
- 无法导入模块:您可能需要一个合适的加载程序