Let us consider an hypothetical scenario where we have project
foo with the below directory structure:
1 2 3 4 5 6 7
Let us say that
src/component in dependent on
lib/util.js, in current world one would have to do the below to
util in their
The nesting for those realtive paths
../../ gets more complex as the directory structure gets more deeper.
For our rescue the
module object of node got an addition of
createRequireFromPath method in
v10.12.0, which accepts a
filenameto be used to construct the relative require function.
and return a
This can help in doing the below in our
src/component, rather than dealing with relative paths.
1 2 3
So, any files in
../../lib can now be just required as
requireLib(<absPath>) instead of dealing with relative paths.
The heart of
createRequireFromPath looks like:
1 2 3 4 5 6
Meanwhile, MylesBorins has a proTip for us:
omfg— sMyle (@MylesBorins) March 24, 2019
`const require = createRequireFromPath('.');`
... just works 😇