code: function getNodeModule(name) {
    if (!isPlain(name))
      throw new Error('Node module ' + name + ' can\'t be loaded as it is not a package require.');
  
    var nodePath = this._nodeRequire('path');
    // try to load from node_modules
    var module;
    try {
      module = this._nodeRequire(nodePath.resolve(process.cwd(), 'node_modules', name));
    }
    catch(e) {
      // fall back to direct require (in theory this is core modules only, which should really be filtered)
      if (e.code == 'MODULE_NOT_FOUND')
        module = this._nodeRequire(name);
    }
    return module;
  }
docs: /*
  Core SystemJS Normalization
  
  If a name is relative, we apply URL normalization to the page
  If a name is an absolute URL, we leave it as-is
  
  Plain names (neither of the above) run through the map and paths
  normalization phases.
  
  The paths normalization phase applies last (paths extension), which
  defines the `decanonicalize` function and normalizes everything into
  a URL.