I am trying to require a file relatively and mysteriously the following is happening
This works well which points to /Users/marcos/Desktop/Taper/lib/utils.js
You can pass that using NODE_PATH
Example:
NODE_PATH=`pwd` node app.js
UPDATED:
From the documentation:
A module prefixed with
'/'
is an absolute path to the file. For example,require('/home/marco/foo.js')
will load the file at/home/marco/foo.js
.A module prefixed with
'./'
is relative to the file callingrequire()
. That is,circle.js
must be in the same directory asfoo.js
forrequire('./circle')
to find it.Without a leading '/' or './' to indicate a file, the module is either a "core module" or is loaded from a
node_modules
folder.If the given path does not exist,
require()
will throw an Error with itscode
property set to'MODULE_NOT_FOUND'
.
Here’s the original answer, which refers to require.paths
(which is no longer supported):
From the documentation:
In node, require.paths
is an array of strings that represent paths to be searched for modules when they are not prefixed with '/'
, './'
, or '../'
.
(emphasis mine)
I created a new node module called rekuire.
It allows you to "require" without using relative paths.
It's a big time saver when it comes to testing/refactoring.
https://npmjs.org/package/rekuire