UNPKG

985 BJavaScriptView Raw
1// npm edit <pkg>
2// open the package folder in the $EDITOR
3
4module.exports = edit
5edit.usage = 'npm edit <pkg>[@<version>]'
6
7edit.completion = require('./utils/completion/installed-shallow.js')
8
9var npm = require('./npm.js')
10var path = require('path')
11var fs = require('graceful-fs')
12var editor = require('editor')
13var noProgressTillDone = require('./utils/no-progress-while-running').tillDone
14
15function edit (args, cb) {
16 var p = args[0]
17 if (args.length !== 1 || !p) return cb(edit.usage)
18 var e = npm.config.get('editor')
19 if (!e) {
20 return cb(new Error(
21 "No editor set. Set the 'editor' config, or $EDITOR environ."
22 ))
23 }
24 p = p.split('/')
25 .join('/node_modules/')
26 .replace(/(\/node_modules)+/, '/node_modules')
27 var f = path.resolve(npm.dir, p)
28 fs.lstat(f, function (er) {
29 if (er) return cb(er)
30 editor(f, { editor: e }, noProgressTillDone(function (er) {
31 if (er) return cb(er)
32 npm.commands.rebuild(args, cb)
33 }))
34 })
35}