1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /* eslint camelcase: "off" */
- const setPATH = require('./set-path.js')
- const { resolve } = require('path')
- let npm_config_node_gyp
- const makeSpawnArgs = options => {
- const {
- args,
- binPaths,
- cmd,
- env,
- event,
- nodeGyp,
- path,
- scriptShell = true,
- stdio,
- stdioString,
- } = options
- if (nodeGyp) {
- // npm already pulled this from env and passes it in to options
- npm_config_node_gyp = nodeGyp
- } else if (env.npm_config_node_gyp) {
- // legacy mode for standalone user
- npm_config_node_gyp = env.npm_config_node_gyp
- } else {
- // default
- npm_config_node_gyp = require.resolve('node-gyp/bin/node-gyp.js')
- }
- const spawnEnv = setPATH(path, binPaths, {
- // we need to at least save the PATH environment var
- ...process.env,
- ...env,
- npm_package_json: resolve(path, 'package.json'),
- npm_lifecycle_event: event,
- npm_lifecycle_script: cmd,
- npm_config_node_gyp,
- })
- const spawnOpts = {
- env: spawnEnv,
- stdioString,
- stdio,
- cwd: path,
- shell: scriptShell,
- }
- return [cmd, args, spawnOpts]
- }
- module.exports = makeSpawnArgs
|