Live updating server-side node code. #198
Description
I just wrote a module that auto-reloads a javascript file in node by watching the file system.
I'd like this repo to be able to use this to avoid having to restart node to get new server-side code loaded.
Now, I could implement my own module that is called via InvokeAsync
's moduleName
parameter. However, my application is using the that parameter for other purposes (MVC Areas if you must), and I would like the live-updating happening before there.
I basically need to change the way this tidbit works.
I am curious on your thoughts on this. I could do a couple things.
- I could provide my own entry point script entirely with
OutOfProcessNodeInstance
, which I'd like to avoid because updates would break it. - Modify
HttpNodeInstanceEntryPoint
to accept a command line parameter that indicates a module name that should be used to invoke themoduleName
parameter andexportedFunctionName
. Basically, a small layer of indirection. When starting a node instance, we can then donode http-entry.js -requireModule hot-instance-require.js
. This newhot-instance-require.js
would look something like this.
// hot-instance-require.js
module.exports = function(moduleName, exportedFunctionName, callback) {
// custom module resolving and executing here that will executed the 'callback' parameter correctly
}
I would of course do the work, but I wanted to discuss it with you before I do this. Would you accept a pull request providing this feature? If so, what approach would you like me to take?
NOTE: I understand the risks of reloading a previously require
'd node module, but in my case, I am using a file generated from webpack. All the modules used in the script are bundled in the single javascript file.