我想将软件包发布到npm。我得到的错误是:软件包名称与现有软件包太相似
403 Forbidden - PUT https://registry.npmjs.org/mypack.... - Package name too similar to existing packages; try renaming your package to '@user../mypackage...' and publishing with 'npm publish --access=public' instead
但是当我尝试安装时:
npm I mypackage...
我得到未找到的错误:
npm ERR! 404 Not Found - GET https://registry.npmjs.org/mypackage... - Not found
有没有一种方法可以检查名称是否适合npm,而不仅仅是猜测?因为发布后我无法删除该程序包。
答案 0 :(得分:2)
要检查相似名称,您可以使用validate-name:
$ npm install -g validate-name
$ validate-npm-name my-module
$ validate-npm-name my-package --max-age 1440
此命令检查 npm 注册表中是否存在相似的名称。
首次使用时,它会下载完整的模块名称列表(在撰写本文时大约 150MB)以检查相似性。后续下载要小得多,因为它只下载自上次下载以来的更新。
我按照@RobC 在 OP 评论中建议的脚本创建了这个模块。它是开源的(MIT)。
如原始脚本中所述,这是尽最大努力,因为 npm 未正式记录相似性规则。