I am not sure this is the best idea as it flattens the "namespace" modules can exist in. For example, I have a few projects that have a module installed locally with "npm install node-cron@latest" and I have a node-cron in /usr/local/lib that is at an older version ( npm install -g node-cron )..
This patch would probably ( I haven't tested yet ) cause some confusion. Is there any reason that "npm link <module>" is not sufficient? I will test it to verify my "namespace" flattening hypothesis. On Wed, Jan 4, 2012 at 10:32 AM, Jeremy Evans <[email protected]> wrote: > Currently, if you install a node module using npm install -g, you aren't > able to require it after install unless you add the global node_modules > folder ($LOCALBASE/lib/node_modules) to NODE_PATH. This behavior seems > wrong to me. Here's a patch that adds the global node_modules directory > to the default require paths, which makes it so that you can require > globally installed node modules without modifying NODE_PATH. > > Tested on i386. OKs? > > Jeremy > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/www/node/Makefile,v > retrieving revision 1.22 > diff -u -p -r1.22 Makefile > --- Makefile 21 Dec 2011 09:56:54 -0000 1.22 > +++ Makefile 4 Jan 2012 17:11:09 -0000 > @@ -11,6 +11,7 @@ COMMENT= V8 JavaScript for clients and s > NODE_VERSION= v0.6.6 > DISTNAME= node-${NODE_VERSION} > PKGNAME= ${DISTNAME:S/v//g} > +REVISION= 0 > > CATEGORIES= www devel > > @@ -52,5 +53,6 @@ NO_CCACHE= Yes > pre-configure: > @# Bad practice, but prevents a whole stack of patches. > ln -sf ${LOCALBASE}/bin/python${MODPY_VERSION} ${WRKDIR}/bin/python > + ${SUBST_CMD} ${WRKDIST}/lib/module.js > > .include <bsd.port.mk> > Index: patches/patch-lib_module_js > =================================================================== > RCS file: patches/patch-lib_module_js > diff -N patches/patch-lib_module_js > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-lib_module_js 4 Jan 2012 17:09:02 -0000 > @@ -0,0 +1,12 @@ > +$OpenBSD$ > +--- lib/module.js.orig Wed Jan 4 09:06:46 2012 > ++++ lib/module.js Wed Jan 4 09:08:58 2012 > +@@ -473,6 +473,8 @@ Module.runMain = function() { > + Module._initPaths = function() { > + var paths = [path.resolve(process.execPath, '..', '..', 'lib', 'node')]; > + > ++ paths.unshift(path.resolve('${TRUEPREFIX}', 'lib', 'node_modules')); > ++ > + if (process.env['HOME']) { > + paths.unshift(path.resolve(process.env['HOME'], '.node_libraries')); > + paths.unshift(path.resolve(process.env['HOME'], '.node_modules'));
