UNPKG

912 BJavaScriptView Raw
1// npm edit <pkg>[@<version>]
2// open the package folder in the $EDITOR
3
4module.exports = edit
5edit.usage = "npm edit <pkg>"
6
7edit.completion = require("./utils/completion/installed-shallow.js")
8
9var npm = require("./npm.js")
10 , spawn = require("child_process").spawn
11 , path = require("path")
12 , fs = require("graceful-fs")
13 , editor = require("editor")
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) return cb(new Error(
20 "No editor set. Set the 'editor' config, or $EDITOR environ."))
21 p = p.split("/")
22 .join("/node_modules/")
23 .replace(/(\/node_modules)+/, "/node_modules")
24 var f = path.resolve(npm.dir, p)
25 fs.lstat(f, function (er) {
26 if (er) return cb(er)
27 editor(f, { editor: e }, function (er) {
28 if (er) return cb(er)
29 npm.commands.rebuild(args, cb)
30 })
31 })
32}