--- /dev/null
+// npm edit <pkg>[@<version>]
+// open the package folder in the $EDITOR
+
+module.exports = edit
+edit.usage = "npm edit <pkg>"
+
+edit.completion = require("./utils/completion/installed-shallow.js")
+
+var npm = require("./npm.js")
+ , path = require("path")
+ , fs = require("graceful-fs")
+ , editor = require("editor")
+
+function edit (args, cb) {
+ var p = args[0]
+ if (args.length !== 1 || !p) return cb(edit.usage)
+ var e = npm.config.get("editor")
+ if (!e) return cb(new Error(
+ "No editor set. Set the 'editor' config, or $EDITOR environ."))
+ p = p.split("/")
+ .join("/node_modules/")
+ .replace(/(\/node_modules)+/, "/node_modules")
+ var f = path.resolve(npm.dir, p)
+ fs.lstat(f, function (er) {
+ if (er) return cb(er)
+ editor(f, { editor: e }, function (er) {
+ if (er) return cb(er)
+ npm.commands.rebuild(args, cb)
+ })
+ })
+}