ale*_*cxe 13 javascript package-managers node.js npm
当您键入非法npm命令时,您将收到一条用户友好的错误消息,指出哪些命令合法使用:
$ npm illegal
Usage: npm <command>
where <command> is one of:
add-user, adduser, apihelp, author, bin, bugs, c, cache,
completion, config, ddp, dedupe, deprecate, docs, edit,
explore, faq, find, find-dupes, get, help, help-search,
home, i, info, init, install, isntall, issues, la, link,
list, ll, ln, login, ls, outdated, owner, pack, prefix,
prune, publish, r, rb, rebuild, remove, repo, restart, rm,
root, run-script, s, se, search, set, show, shrinkwrap,
star, stars, start, stop, submodule, tag, test, tst, un,
uninstall, unlink, unpublish, unstar, up, update, v,
version, view, whoami
Run Code Online (Sandbox Code Playgroud)
你可能会注意到,其中有isntall命令.
这个命令有什么意义?如果这是为了处理错别字,那么为什么不是有特殊的处理intall,insatll等等?此外,uninstall没有相应的unisntall选择.
(使用npm 1.3.22版本).
我问的原因是我对如何处理拼写错误感到有些惊讶和困惑.例如,git比较您输入的命令并建议它可用的最近命令:
$ git stats
git: 'stats' is not a git command. See 'git --help'.
Did you mean this?
status
Run Code Online (Sandbox Code Playgroud)
此外,pipPython包管理器内置了类似的功能:
$ pip isntall
ERROR: unknown command "isntall" - maybe you meant "install"
Run Code Online (Sandbox Code Playgroud)
仅供参考,在引擎罩,它使用difflib.get_close_matches()的功能.
kum*_*rsh 11
我是Github关联问题的原始"提升者",那些是OSS软件贡献的第一天......我认为这只是一个错字,也许拉动请求可以解决它.但我很幸运能够首先提出一个问题(#2933),以确定他们是否正在寻找这方面的贡献......
事实证明,它解决了围绕这个问题的整个讨论,这很好看.
该存在的理由了的isntall命令是因为npm维护人员认为,这样可以节省他们时间-因此,推而广之-其他几个开发商.正如在链接问题中所讨论的那样,这是一个有争议的决定,并且有几个人提出了更有趣的解决拼写错误的方法,例如使用来自有效npm命令的非法命令的levenshtein距离计算(https://www.npmjs. org/package/levenshtein).
无论如何,我认为你是否实现了其中一个算法并为npm项目做出贡献,这对于这个令人敬畏的库来说是一个很好的补充......
| 归档时间: |
|
| 查看次数: |
1897 次 |
| 最近记录: |