File Explorer

/var/lang/lib/node_modules/npm/node_modules/node-gyp/lib

This explorer reads the filesystem of the server it runs on, so /workspace/user isn't present here. Browsing and the terminal still work against this server's own disk from /.

find-node-directory.js2.3 KB · 64 lines
'use strict' const path = require('path')const log = require('./log') function findNodeDirectory (scriptLocation, processObj) {  // set dirname and process if not passed in  // this facilitates regression tests  if (scriptLocation === undefined) {    scriptLocation = __dirname  }  if (processObj === undefined) {    processObj = process  }   // Have a look to see what is above us, to try and work out where we are  const npmParentDirectory = path.join(scriptLocation, '../../../..')  log.verbose('node-gyp root', 'npm_parent_directory is ' +              path.basename(npmParentDirectory))  let nodeRootDir = ''   log.verbose('node-gyp root', 'Finding node root directory')  if (path.basename(npmParentDirectory) === 'deps') {    // We are in a build directory where this script lives in    // deps/npm/node_modules/node-gyp/lib    nodeRootDir = path.join(npmParentDirectory, '..')    log.verbose('node-gyp root', 'in build directory, root = ' +                nodeRootDir)  } else if (path.basename(npmParentDirectory) === 'node_modules') {    // We are in a node install directory where this script lives in    // lib/node_modules/npm/node_modules/node-gyp/lib or    // node_modules/npm/node_modules/node-gyp/lib depending on the    // platform    if (processObj.platform === 'win32') {      nodeRootDir = path.join(npmParentDirectory, '..')    } else {      nodeRootDir = path.join(npmParentDirectory, '../..')    }    log.verbose('node-gyp root', 'in install directory, root = ' +                nodeRootDir)  } else {    // We don't know where we are, try working it out from the location    // of the node binary    const nodeDir = path.dirname(processObj.execPath)    const directoryUp = path.basename(nodeDir)    if (directoryUp === 'bin') {      nodeRootDir = path.join(nodeDir, '..')    } else if (directoryUp === 'Release' || directoryUp === 'Debug') {      // If we are a recently built node, and the directory structure      // is that of a repository. If we are on Windows then we only need      // to go one level up, everything else, two      if (processObj.platform === 'win32') {        nodeRootDir = path.join(nodeDir, '..')      } else {        nodeRootDir = path.join(nodeDir, '../..')      }    }    // Else return the default blank, "".  }  return nodeRootDir} module.exports = findNodeDirectory