![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /proc/self/root/usr/local/lib/node_modules/npm/lib/commands/ |
Upload File : |
// npm edit <pkg> // open the package folder in the $EDITOR const { resolve } = require('path') const fs = require('graceful-fs') const { spawn } = require('child_process') const splitPackageNames = require('../utils/split-package-names.js') const completion = require('../utils/completion/installed-shallow.js') const BaseCommand = require('../base-command.js') class Edit extends BaseCommand { static get description () { return 'Edit an installed package' } /* istanbul ignore next - see test/lib/load-all-commands.js */ static get name () { return 'edit' } /* istanbul ignore next - see test/lib/load-all-commands.js */ static get usage () { return ['<pkg>[/<subpkg>...]'] } /* istanbul ignore next - see test/lib/load-all-commands.js */ static get params () { return ['editor'] } /* istanbul ignore next - see test/lib/load-all-commands.js */ async completion (opts) { return completion(this.npm, opts) } async exec (args) { if (args.length !== 1) throw this.usageError() const path = splitPackageNames(args[0]) const dir = resolve(this.npm.dir, path) // graceful-fs does not promisify await new Promise((resolve, reject) => { fs.lstat(dir, (err) => { if (err) return reject(err) const [bin, ...args] = this.npm.config.get('editor').split(/\s+/) const editor = spawn(bin, [...args, dir], { stdio: 'inherit' }) editor.on('exit', (code) => { if (code) return reject(new Error(`editor process exited with code: ${code}`)) this.npm.exec('rebuild', [dir]).catch(reject).then(resolve) }) }) }) } } module.exports = Edit