UNPKG

5.3 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/install.js"],"names":["childProcess","require","path","shelljs","util","CWD","process","cwd","TEMP","join","install","npmPackage","options","destination","sanitize","overwrite","quiet","log","error","destinationPath","directoryExists","errored","rm","mkdir","npmrcFile","test","cp","installOptions","stdio","command","platform","spawnSync","packageName","getPackageName","ls","forEach","dep","from","toString","to","mv","err","console","exit","module","exports"],"mappings":"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","file":"install.js","sourcesContent":["const childProcess = require('child_process');\nconst path = require('path');\nconst shelljs = require('shelljs');\n\nconst util = require('./util.js');\n\nconst CWD = process.cwd();\nconst TEMP = path.join(CWD, 'node_modules', '.npm-install-version-temp');\n\nfunction install (npmPackage, options = {}) {\n const {\n destination = util.sanitize(npmPackage),\n overwrite = false,\n quiet = false\n } = options;\n\n const log = quiet ? () => {} : (...args) => console.log(...args);\n\n if (!npmPackage) util.error();\n const destinationPath = path.join(CWD, 'node_modules', destination);\n if (!overwrite && util.directoryExists(destinationPath)) {\n return log(`Directory at ${destinationPath} already exists, skipping`);\n }\n\n let errored = false;\n try {\n // make temp install dir\n shelljs.rm('-rf', TEMP);\n shelljs.mkdir('-p', path.join(TEMP, 'node_modules'));\n\n // copy local .npmrc file if exists\n const npmrcFile = path.join(CWD, '.npmrc');\n if (shelljs.test('-f', npmrcFile)) {\n shelljs.cp(npmrcFile, TEMP);\n }\n\n // install package to temp dir\n const installOptions = {\n cwd: TEMP,\n stdio: [null, null, null]\n };\n const command = process.platform === 'win32' ? 'npm.cmd' : 'npm';\n childProcess.spawnSync(command, ['install', npmPackage], installOptions);\n\n // get real package name\n const packageName = util.getPackageName(npmPackage);\n\n // move deps inside package\n shelljs.mkdir('-p', path.join(TEMP, 'node_modules', packageName, 'node_modules'));\n shelljs.ls(path.join(TEMP, 'node_modules'))\n .forEach(dep => {\n if (dep === packageName) return;\n const from = path.join(TEMP, 'node_modules', dep).toString();\n const to = path.join(TEMP, 'node_modules', packageName, 'node_modules', dep).toString();\n shelljs.mv(from, to);\n });\n\n // copy to node_modules/\n shelljs.rm('-rf', destinationPath);\n shelljs.mv(path.join(TEMP, 'node_modules', packageName), destinationPath);\n\n log(`Installed ${npmPackage} to ${destinationPath}`);\n } catch (err) {\n errored = true;\n console.error(`Error installing ${npmPackage}`);\n console.error(err.toString());\n } finally {\n // clean up temp install dir\n shelljs.rm('-rf', TEMP);\n\n if (errored) process.exit(1);\n }\n}\n\nmodule.exports = install;\n"]}
\No newline at end of file