Browse Source

module: fix loading from global folders on Windows

Code was calculating $PREFIX/lib/node relative to process.execPath, but
on Windows process.execPath is $PREFIX\node.exe whereas everywhere else
process.execPath is $PREFIX/bin/node (where $PREFIX is the root of the
installed Node.js).

PR-URL: https://github.com/nodejs/node/pull/9283
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: João Reis <reis@janeasystems.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
v6
Richard Lau 8 years ago
committed by Gibson Fahnestock
parent
commit
055482c21e
No known key found for this signature in database GPG Key ID: B01FBB92821C587A
  1. 11
      lib/module.js

11
lib/module.js

@ -632,7 +632,16 @@ Module._initPaths = function() {
homeDir = process.env.HOME; homeDir = process.env.HOME;
} }
var paths = [path.resolve(process.execPath, '..', '..', 'lib', 'node')]; // $PREFIX/lib/node, where $PREFIX is the root of the Node.js installation.
var prefixDir;
// process.execPath is $PREFIX/bin/node except on Windows where it is
// $PREFIX\node.exe.
if (isWindows) {
prefixDir = path.resolve(process.execPath, '..');
} else {
prefixDir = path.resolve(process.execPath, '..', '..');
}
var paths = [path.resolve(prefixDir, 'lib', 'node')];
if (homeDir) { if (homeDir) {
paths.unshift(path.resolve(homeDir, '.node_libraries')); paths.unshift(path.resolve(homeDir, '.node_libraries'));

Loading…
Cancel
Save