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
myPath = "/Users/marcos/Desktop/Taper/lib/./utils";
require(myPath);
This doesn't but it should point to exactly the same file:
require.paths.unshift("/Users/marcos/Desktop/Taper/lib")
require("./utils"); //Doesn't work with './'
require("utils"); //Works Fine
Anyone knows why I can't still use ./ in this case for loading the path since    
require("path").resolve("/Users/marcos/Desktop/Taper/lib", "./utils")
results in:
"/Users/marcos/Desktop/Taper/lib/utils"
anyway?
Thanks in advance
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.jsmust be in the same directory asfoo.jsforrequire('./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_modulesfolder.If the given path does not exist,
require()will throw an Error with itscodeproperty 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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With