code: function (relativeTo, path) {
            var len = relativeTo.length;
            if (path.substring(0, len) == relativeTo) {
              // if the relative path now starts with a path separator
              // either (/ or \), remove it
              /* Note: we're casting a boolean to an int by adding len to it */
              return path.slice(len + /[\/\\]/.test(path.charAt(len)));
            }
  
            var sA = util.removeEndSlash(path).split(ENV.pathSep),
              sB = util.removeEndSlash(relativeTo).split(ENV.pathSep),
              i = 0;
  
            /* Count how many segments match. */
            while(sA[i] == sB[i]) { ++i; }
  
            if (i) {
              /* If at least some segments matched, remove them.  The result is our new path. */
              path = sA.slice(i).join(ENV.pathSep);
  
              /* Prepend `../` for each segment remaining in `relativeTo`. */
              for (var j = sB.length - i; j > 0; --j) { path = '../' + path; }
            }
  
            return path;
          }
docs: `util.relative` accepts two paths (strings) and returns the second path relative to the first.  - if `path` starts with `relativeTo`, then strip `path` off the `relativeTo` part  util.relative('abc/def/', 'abc') -> 'def'  - if `path` starts with some substring of `relativeTo`, remove this substring and add `../` for each remaining segment of `relativeTo`.  util.relative('abc/def/', 'abc/hij') -> '../def'