I didn't know that require() looked at parent node_modules - that means we don't need to make most of the changes that I've suggested in this PR.