12345678910111213141516171819202122232425262728293031323334353637383940 |
- '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;
- };
|