Redefining a RequireJS module -- is it possible?

google-chrome, javascript, requirejs, userscripts

Solution

Use this:

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

Problem

Basically, there is a page that I visit that uses RequireJS. I want to make adjustments to this page, so I went the route of a userscript. While looking at the client-side code I see that there is a module defined as so: ``` define("settings", [], function() { return { SETTINGA: "100", SETTINGB: "200", etc. } }) ``` I want to add my own item to the settings array, as well as change some settings without having to redefine the module in my userscript (with the changes) and then removing/readding it. Is it possible to just make adjustments to this module? P.S. I'm using the Script Injection technique to get my userscript to interact with other javascript in the original page. Also, doing `require("settings")` in the Javascript console returns an object (not an array), so I can't do things like `require("settings")[0]` or `require("settings").push(...)`, however I can access the settings by doing `require("settings").SETTINGA`. So, I'm not sure how to add/redefine settings to this since it is not an array?

Original source

Related problems