npm publish获取的包名称与现有包太相似

npm publish获取的包名称与现有包太相似,npm,Npm,我想将我的包发布到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。我得到的错误是:包名与现有包太相似

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,而不仅仅是猜测?因为我发布后无法删除包。

要检查类似名称,可以使用:

安装:
$npm安装-g验证名称
使用:
$validate npm name my module
$validate npm name my package--最大年龄1440
它的作用是: 此命令检查npm注册表中是否存在类似的名称

第一次使用时,它会下载模块名的完整列表(截至本文撰写时约为150MB)以检查相似性。后续下载要小得多,因为它只下载上次下载后的更新

我按照OP评论中@RobC建议的脚本创建了这个模块。它是开源的(MIT)


正如原始脚本中所描述的,这是一个最好的努力,因为npm没有正式记录相似性规则。

也许一个有范围的包将有助于AFAIK npm。I
curl
来自的数据<代码>https://replicate.npmjs.com/_all_docs(大约124Mb JSON)然后使用自定义nodejs脚本查询
.JSON
文件。通过CLI,我运行:
节点。/path/to/pkg-name-check.js”“
。“与现有PKG类似”的规则,但是脚本是一个很好的指示器。@RobC,你知道脚本的作者吗。我想在我创建的模块中表扬他/她。@ozm-我是的作者。你指的就是这个吗?@RobC。是的,我在开源模块中使用了该脚本中的RegExp。我想添加信用链接到您的个人资料。另外,因为我不知道你是作者,所以我无法获得使用它的许可。在下面建议的模块中使用它可以吗?