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'));

Reply via email to