| 123456789101112131415161718192021222324252627282930313233343536373839 | 'use strict';const path = require('path');const pathKey = require('path-key');module.exports = opts => {	opts = Object.assign({		cwd: process.cwd(),		path: process.env[pathKey()]	}, opts);	let prev;	let pth = path.resolve(opts.cwd);	const ret = [];	while (prev !== pth) {		ret.push(path.join(pth, 'node_modules/.bin'));		prev = pth;		pth = path.resolve(pth, '..');	}	// ensure the running `node` binary is used	ret.push(path.dirname(process.execPath));	return ret.concat(opts.path).join(path.delimiter);};module.exports.env = opts => {	opts = Object.assign({		env: process.env	}, opts);	const env = Object.assign({}, opts.env);	const path = pathKey({env});	opts.path = env[path];	env[path] = module.exports(opts);	return env;};
 |