I am trying to setup Node on Mac OSX Lion. It all seems to work ok, but I can't seem to import anything modules from my global modules folder. I get the error,
Error: Cannot find module <module>
If I run this:
node -e require.paths, the response I get is:
[ '/usr/local/lib/node_modules', '/Users/Me/.node_modules', '/Users/Me/.node_libraries', '/usr/local/Cellar/node/0.4.12/lib/node' ]
Which is correct, my modules are indeed installed in /usr/local/lib/node_modules. When I try and run a script, however, I am getting this:
Error: Cannot find module 'socket.io' at Function._resolveFilename (module.js:326:11) at Function._load (module.js:271:25) at require (module.js:355:19) at Object.<anonymous> (/Users/Me/node/server.js:2:10) at Module._compile (module.js:411:26) at Object..js (module.js:417:10) at Module.load (module.js:343:31) at Function._load (module.js:302:12) at Array.<anonymous> (module.js:430:10) at EventEmitter._tickCallback (node.js:126:26)
My .bash_profile looks like this:
export PATH=/usr/local/mysql/bin:$PATH export NODE_PATH=/usr/local/lib/node_modules export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:/usr/local/mysql/lib/"
Would really appreciate some help, I have no idea why I can't import any libraries.
If you're using npm >=1.0, you can use
npm link <global-package> to create a local link to a package already installed globally. (Caveat: The OS must support symlinks.)
However, this doesn't come without its problems.
npm link is a development tool. It's awesome for managing packages on your local development box. But deploying with npm link is basically asking for problems, since it makes it super easy to update things without realizing it.
As an alternative, you can install the packages locally as well as globally.
For additional information, see
You can use npm link to create a symbolic link to your global package in your projects folder.
$ npm install -g express $ cd [local path]/project $ npm link express
All it does is create a local node_modules folder and then create a symlink express -> [global directory]/node_modules/express which can then be resolved by