I need to rewrite some require paths in JavaScript source files:
Example (foo => ../../../foo/baz):
var a = require('foo/a');=>var b = require('../../../foo/baz/a');var a = require('foo/../b');=>var b = require('../../../foo/baz/../b');
Note: This replacement will be done on a complete js source files. So require(' and ') must be used as delimiter!
So far we have figured out to use some setup like this:
var source = '';
source += "var a = require('foo/a');\n";
source += "var b = require('foo/../b');\n";
source += "console.log(a + b);";
var options = {
'foo': '../../../foo/baz'
};
for (var key in options) {
var regex = new RegExp('require[(](\"|\')' + key, 'g');
source = source.replace(regex, "require('" + options[key]);
}
console.log(source);
Though above source code is working. I am not sure if this is save as I am just skipping the closing delimiter.